【发布时间】:2013-03-06 08:47:49
【问题描述】:
我们如何使用 Websockets(和 PHP)实现私人消息系统(客户端到客户端)?
据我了解,服务器广播消息,所有客户端都可以通过 connection.onmessage 事件处理程序接收消息。我想知道是否有办法将消息仅发送给 websockets 中的目标用户?
【问题讨论】:
-
我看过这个stackoverflow.com/questions/14592513/…,但没有答案。
我们如何使用 Websockets(和 PHP)实现私人消息系统(客户端到客户端)?
据我了解,服务器广播消息,所有客户端都可以通过 connection.onmessage 事件处理程序接收消息。我想知道是否有办法将消息仅发送给 websockets 中的目标用户?
【问题讨论】:
当客户端发送消息 (ws.send( message );) 时,您的 WebSocket 服务器将收到该消息。然后您将其发送到的套接字完全取决于您的服务器代码 - 您的实现。
要创建一对一聊天,您需要一种在聊天中涉及的两个客户端之间路由数据的方法。您还需要一种验证方式,确保只有这两个客户端才能接收该信息。
WebSocket 框架倾向于提供额外的PubSub 层,例如Pusher(我之前曾为他工作过)使用channels 执行此操作。您会发现类似的术语以及“主题”和“主题”。
一旦您有了在两个客户端之间路由数据(聊天消息)的方法,您就需要考虑对订阅进行身份验证。可以通过询问How do I create Private channel between two user 的这个问题找到更多信息。问题是关于 Ruby,但适用于任何技术。