0

我有一个 Python Autobahn WAMP 服务器(v. 0.8.8,http://pastebin.com/DfQvaJYF 上的应用程序代码与 Python 客户端配合良好。使用最新的 Twisted 13.2。对于服务器和客户端。

但是,浏览器 javascript 客户端(来自 CDN 的 autobahn js,应用程序代码位于http://pastebin.com/1GGaRP5e)同样取自 Autobahn JS 示例,订阅了一个主题,但没有收到任何消息。任何地方都没有错误。使用 Node.js 运行客户端时也会发生同样的情况。

检查服务器日志,我可以看到确实没有传输任何内容 - 在 js web 或 Node.js 客户端连接并订阅之后,没有任何 TX WAMP 事件。

WAMP 服务器在 8080 端口上运行,JS Web 客户端页面从 8111 端口提供服务。两者都在同一主机上。

4

1 回答 1

0

发现问题。感谢@oberstet 的评论(见上文)。虽然只是将客户端领域设置为建议的默认领域1 不起作用,但这让我找到了解决方案。

简短而简单的答案是Python WAMP 服务器应始终显式设置 realm。这至少适用于服务器实现子类wamp.ApplicationSession的组件(高速公路网站上的许多或所有示例)。

换句话说,在服务器中必须有一个连接领域的onConnect函数。没有它,

  • 一个类似构造的 Python 客户端(不加入领域),将工作
  • 没有设置领域的(Python 或 Javascript)客户端将起作用

解决方案之外的一些猜测:如果可以构建一个无需设置领域即可工作的 Javascript 客户端(我使用的示例需要显式领域),那么这样的客户端也许也可以工作。也许 Python WAMP 服务器代码在其默认领域的设置中存在错误。或者也许只是默认值已更改。我不知道。

于 2014-05-03T15:49:26.980 回答