【问题标题】:how to use AutobahnJs to send a message to a specified client?如何使用 AutobahnJs 向指定的客户端发送消息?
【发布时间】:2012-08-13 12:01:12
【问题描述】:

我需要一个推送消息服务器的方案。

现在我选择 AutobahnJs + AutobahnPython 方案。

AutobahnJs 库使用 html5 的 websocket 连接到 AutobahnPython 使用的服务器

现在,clientA ,clientB,clientC 连接到服务器。

APPS 想要向 clientA 发送消息。怎么办?

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

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

这里有一个问题,我只需要APPS(clientD) 向clientA 发送消息,而不是每个订阅的客户端。如何做到这一点?

也许我的流程不正确。有什么帮助和更多方案吗?

【问题讨论】:

    标签: websocket autobahn


    【解决方案1】:

    您可以通过在发布时在合格参数中提供 WAMP 会话 ID 来做到这一点:

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

    可以通过在会话对象上调用 sessionid() 在 AutobahnJS 中获取 WAMP 会话 ID。

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

    您的总体方案对于您的用例是正确的:所有客户端订阅 1 个主题,但随后仅指定一个有资格接收已发布消息的专用接收器。

    【讨论】:

    • 1.我不了解 Session.publish 中排除和合格的参数(主题、事件、排除、合格)。我如何获取其他人的 sessionID?我只能获得自己的 sessionID。 2.WAMP Session Authentication的例子是unclick。如何使用会话身份验证。 3.当我刷新网页时,会话ID发生了变化,如何修复刷新或重新打开网页的会话ID? 4.服务器端(autoAbhnPython)如何控制(获取和存储)客户端的会话?抱歉,有这么多问题困扰您,但我准备好需要帮助,非常感谢!
    • 会话 ID 特定于 1 个 WAMP 会话,并且仅针对该会话具有生命周期。当您重新加载/离开打开 WebSocket 连接的页面时,该连接以及 WAMP 会话就会消失。会话 ID 在 WAMP 客户端连接时由 WAMP 服务器随机生成。排除/合格是包含活动 WAMP 会话的会话 ID 的可选参数。对于客户端获取另一个客户端的会话 ID,需要作为 RPC 响应的一部分或在 PubSub 事件有效负载中进行通信。如果您有更多问题,最好使用邮件列表,因为..
    • 我访问了您的网站,并且查看了有关 AutobahnPython 的所有教程,我是一个新的 pthomer,到目前为止,我只能模仿示例,所以外部示例我一无所知。我想要一个可以处理会话的功能,当客户端断开连接时,服务器可以处理此操作。顺便说一句:我如何获得邮件列表?是谷歌论坛吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 2023-04-01
    • 1970-01-01
    相关资源
    最近更新 更多