2012-08-17 41 views
1

我需要一个推送消息服务器的方案。如何使用AutobahnJs将消息发送到指定的客户端?

现在我选择AutobahnJs + AutobahnPython方案。通过AutobahnJs图书馆HTML5的

使用的WebSocket连接到由AutobahnPython

现在,客户端A,clientB使用服务器,clientC连接到服务器。

APPS想发送消息给clientA。怎么做?

这是我的流程: APPS伪装成clientD连接到服务器。

在javascript中,使用订阅频道,每个客户端使用相同的订阅频道。 clientD向频道发布消息(与订阅频道相同),服务器消息给订阅此频道的所有客户端。

这是一个问题,我需要APPS(clientD)发送消息给clientA而不是每个订阅的客户端。

也许我的流量不正确。任何帮助和更多计划?

回答

2

您可以通过执行时,在符合条件的参数提供的WAMP会话ID做到这一点发布:

WAMP的会话ID可以通过对会话对象调用的SessionID()在AutobahnJS得到。

http://autobahn.ws/js/reference#Session_sessionid

你的总体方案为您的使用情况下,正确的:所有客户端订阅1个话题,但当时仅指定专用接收机资格获得发布的消息。

+0

1.我不明白在Session.publish(主题,事件,排除,合格)中排除参数和符合条件的参数。如何获取其他会话ID?我只能获得我自己的sessionID。 2. WAMP会话身份验证示例不显示。如何使用会话认证。 3.当我刷新网页时,会话ID已更改,如何修复sessionid刷新或重新打开网页? 4.服务器端(autoAbhnPython)如何控制(获取和存储)客户端会话?对不起,这么多问题打扰你,但我准备好了需要帮助,非常感谢! – user1514160 2012-08-27 03:00:45

+0

会话ID特定于1个WAMP会话,并且只有该会话有生存期。当您重新加载/离开打开WebSocket连接的页面时,该连接以及WAMP会话消失。当WAMP客户端连接时,会话ID由WAMP服务器随机生成。 Exclude/eligible是可选参数,其中包含活动WAMP会话的会话ID。对于客户端获取另一个客户端的会话ID,需要将其作为RPC响应的一部分或PubSub事件有效内容进行通信。因为.. – oberstet 2012-08-27 09:31:22

+0

我访问了你的网站,并且浏览了关于AutobahnPython的所有教程,现在我是一个新的pythomer,我可以模仿这些例子,所以外面的例子, 我什么都不知道。我想要一个可以处理会话的功能,当客户端断开连接时,服务器可以处理这个动作。顺便说一句:我如何获得邮件列表?它是谷歌论坛? – user1514160 2012-08-27 10:10:29

相关问题