我希望在javascript接口(客户端)和java服务器之间建立一种低延迟的双向通信。
客户端必须从服务器请求数据(可以请求不同的数据集,需要异步,数据是传感器数据的小集合)。
我考虑使用websocket来实现它,因为它的延迟很低。然而,我一直在选择java websocket服务器实现(我找到了jetty,但有很多,node.js和socket.io也有一个例子,但在这种情况下不会有很多客户端;只有一个客户端发送多个请求,所以如果我错了,请纠正我,但似乎没有理由使用node.js路径)。
最后但并非最不重要的;服务器运行在树莓派上,并通过特殊协议接收其传感器数据;(但我认为这对这个问题不重要)。
有没有人在这个领域有一些经验,想分享他/她的长处?Thx。
我一直在使用Kaazing(HTML5版本)将通过web套接字接收的流量代理到在传统TCP服务器套接字上侦听的Java进程。
它工作得很好,延迟很低,并且持续每秒处理1000多条消息(尽管我们发现Java代码是这方面的限制因素)。
Kaazing还为Java、JavaScript和Flex提供了客户端API,这使我们能够使用熟悉的API(在我的案例中是Concordion)编写验收测试套件。
我不知道它在树莓派上运行得有多好,但如果它是免费下载的,有一个简单的方法可以找到。
我已经通过使用Atmosphere解决了我的问题,Atmospher是一个与所有主要java服务器和web浏览器兼容的框架。(Java官方标准仍在运行中)。
https://github.com/Atmosphere/atmosphere
我已经启动并运行了聊天演示。