【问题标题】:Calling dispatch in subscribe in Autobahn在高速公路订阅中调用调度
【发布时间】:2013-02-13 05:15:30
【问题描述】:

我正在使用 Autobahn,我有一个特定于实现的问题。

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

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

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

这里发生了什么?

【问题讨论】:

    标签: autobahn


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-26
      相关资源
      最近更新 更多