如何解决0MQ / NetMQ - pub-sub - 订阅者如何知道发布者已关闭?
在 C# 中使用 NetMQ(来自 ZeroMQ 的端口)。
发布者和订阅者使用不同的网络服务。
在不确定的时间,发布者将向所有订阅者广播一条消息。
如果持有发布者的网络服务出现故障,订阅者如何知道这一点?
我试图避免使用轮询机制来解决这个问题,例如每 x 秒广播一条消息,如果订阅者在 x 秒内没有收到消息,您可能认为服务器已关闭。
示例发布商:
private PublisherSocket _publisherSocket;
public void StartPublisher()
{
_publisherSocket = new PublisherSocket();
_publisherSocket.Bind("tcp://localhost:1234");
}
public void SendMessage(string message)
{
_publisherSocket
.SendMoreFrame("superMessage")
.SendFrame(message);
}
订阅者示例:
public void StartSubscriber()
{
_subscriberSocket.Connect("tcp://localhost:1234");
_subscriberSocket.Subscribe("superMessage");
while (_subscriberIsActive)
{
// Blocks until a message is received
var messages = _subscriberSocket.ReceiveMultipartStrings();
Console.WriteLine(messages[1]);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。