在查看Pusher Servcer及其客户端/服务器API时,我在试图弄清楚Pusher如何帮助我允许设备/应用程序之间的双向通信时遇到了一些问题。
我在现场有多个较小的设备/应用程序,它们应该将状态返回到服务器或另一个客户端,后者充当浏览所有这些设备和监控状态等的仪表板。
据我所知,这可以使用传统的WebSockets
和一个云服务器来完成,在它们之间管理这些客户端之间的所有连接——我认为Pusher会是这样。
但在阅读了这些文档之后,我并没有真正看到双向数据通信的概念。原因如下:
-
要将数据推送到客户端,我必须使用其中一个推送服务器库
-
要接收该数据,我必须使用Pusher客户端库之一
然而,这个概念并不符合我的需要。我想:
- 向客户端广播
- 客户端可以直接向客户端发送数据(服务器充当网关/路由)
- 客户端可以将数据发送到服务器
- 服务器可以向唯一的客户端发送/响应
当读到Pusher时,他们说:"双向通信",我现在看不到。那么如何实现广告中的双向通信呢?
这并不理想。对于可能更接近您想要的内容,请查看WAMP(Web应用程序消息传递协议),它不仅仅具有PubSub。上有一个实现列表http://wamp-proto.org/implementations.对于路由器,我推荐Crossbar.io(http://crossbar.io),其中包含最多可帮助您入门的文档。全面披露:我参与了WAMP和Crossbar.io,但这都是开源的,可能正是你所需要的。