0

我正在使用高速公路,我有一个特定于实现的问题。

我试图弄清楚如何在客户端订阅主题时向所有连接的客户端(包括新订阅的客户端)发送通知。这是代码(为清楚起见,已向下编辑):

@exportSub("", True)
def subscribe(self, topicUriPrefix, topicUriSuffix):
topic_uri = "%s%s" % (topicUriPrefix, topicUriSuffix) 
    self.client.dispatch(topic_uri, {"msg":"WTF"})
return True

但是,我没有看到新订阅的消息收到此调度。调度调用返回无。

这里发生了什么事?

4

1 回答 1

2

我想通了。在接收通过 dispatch() 发送的消息之前,客户端必须先订阅一个主题。这意味着如果希望订阅客户端接收消息,则不能在订阅内部调用 dispatch()。我通过构建一个简单的消息队列并在协议实例上为任何排队的消息调用调度来解决这个问题。

于 2013-02-12T21:15:30.033 回答