如何使用Pusher API进行双向通信?

How to use Pusher API for bi-directional communication?

在查看 Pusher Servcer and their Client / Server API 时,我在尝试弄清楚 Pusher 如何帮助我实现设备/应用程序之间的双向通信时遇到了一些问题。

我在现场有多个较小的设备/应用程序,它们应该 return 将它们的状态发送到服务器或另一个客户端,它充当仪表板来浏览所有这些设备并监控状态等。

据我所知,这可以使用传统的 WebSockets 和云服务器来完成,在云服务器之间管理这些客户端之间的所有连接——我认为 Pusher 会是这样。

但是在阅读了文档之后,我真的看不出双向数据通信的概念。原因如下:

  1. 要将数据推送到客户端,我必须使用 Pushers 之一 Server Libraries

  2. 要接收数据,我必须使用 Pusher Client Libraries

然而这个概念不符合我的需要。我想:

  1. 向客户广播。
  2. 客户端可以直接向客户端发送数据(服务器充当网关/路由)。
  3. 客户端可以向服务器发送数据。
  4. 服务器可以向唯一的客户端发送/响应。

阅读 Pusher 时,他们说:"Bi-Directional Communication" 我目前看不到。那么如何实现标榜的双向通信呢?

Pusher 只做 PubSub。使用这个,你可以模拟双向交流:对话双方各自需要一个话题专门讨论这个话题,然后你发布到这个。

这并不理想。对于可能更接近您想要的东西的东西,请查看 WAMP(Web 应用程序消息传递协议),它不仅仅是 PubSub。在 http://wamp-proto.org/implementations. For a router I would recommend Crossbar.io (http://crossbar.io) 有一个实现列表,其中包含最多的文档来帮助您入门。全面披露:我参与了 WAMP 和 Crossbar.io - 但它们都是开源的,可能正是您所需要的。