【问题标题】:private message using websockets使用 websockets 的私人消息
【发布时间】:2013-03-06 08:47:49
【问题描述】:

我们如何使用 Websockets(和 PHP)实现私人消息系统(客户端到客户端)?

据我了解,服务器广播消息,所有客户端都可以通过 connection.onmessage 事件处理程序接收消息。我想知道是否有办法将消息仅发送给 websockets 中的目标用户?

【问题讨论】:

标签: php websocket


【解决方案1】:

当客户端发送消息 (ws.send( message );) 时,您的 WebSocket 服务器将收到该消息。然后您将其发送到的套接字完全取决于您的服务器代码 - 您的实现。

要创建一对一聊天,您需要一种在聊天中涉及的两个客户端之间路由数据的方法。您还需要一种验证方式,确保只有这两个客户端才能接收该信息。

WebSocket 框架倾向于提供额外的PubSub 层,例如Pusher(我之前曾为他工作过)使用channels 执行此操作。您会发现类似的术语以及“主题”和“主题”。

一旦您有了在两个客户端之间路由数据(聊天消息)的方法,您就需要考虑对订阅进行身份验证。可以通过询问How do I create Private channel between two user 的这个问题找到更多信息。问题是关于 Ruby,但适用于任何技术。

【讨论】:

  • 谢谢莱格特。使用 socket.io 和 node.js 实现解决方案似乎更容易。
  • socket.io 不是唯一的选择,我建议您看看替代方案。对于 PHP,有 RatchetWrench。但是,当 WebSocket 不存在时,它们不提供回退。如果您正在查看 node.js,请查看 Faye。如果您想坚持使用 PHP 并希望连接回退,那么 Pusher 是一个很好的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-21
  • 2016-03-31
  • 2011-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多