Javascript HTTP上的实时双向JSON-RPC通信
我正在构建一个JSON-RPC服务器,它通过HTTP接受请求。我希望支持双向通信(客户端和服务器都可以发送请求),具体的用例是发布/订阅架构,其中客户端发送Javascript HTTP上的实时双向JSON-RPC通信,javascript,http,streaming,comet,json-rpc,Javascript,Http,Streaming,Comet,Json Rpc,我正在构建一个JSON-RPC服务器,它通过HTTP接受请求。我希望支持双向通信(客户端和服务器都可以发送请求),具体的用例是发布/订阅架构,其中客户端发送subscribe(X)请求,并(几乎)实时接收changed(X)请求。据我所知,有几种方法可以通过HTTP实现这一点: 长轮询 网袋 使用基于cookie的会话模型轮询调用 流(保持HTTP连接打开) 以上部分的组合 我正在寻找的是一个基于公认的互联网标准(如果可能的话)的解决方案,可以从web浏览器使用,并且易于在客户端使用。到目前
subscribe(X)
请求,并(几乎)实时接收changed(X)
请求。据我所知,有几种方法可以通过HTTP实现这一点:
- 长轮询
- 网袋
- 使用基于cookie的会话模型轮询调用
- 流(保持HTTP连接打开)
- 以上部分的组合
先谢谢你 据我所知,流媒体技术由FF、Chrome(存在缓冲问题,需要应用程序/八位字节流的数据类型或工作前奏)和IE8(通过一个小小的XDomainRequest)支持。我不懂歌剧 我真的不知道彗星的任何行业标准,可能是最接近的。很难看到facebook/gmail/twitter是如何做到这一点的,因为所有的代码都很模糊,而且很难找到关于所有浏览器如何处理一切的信息 更困难的是,您将需要使用一个专门的服务器,保持如此多的连接打开将需要线程池等。。一台普通的服务器会很快崩溃
不过,如果你能让它可靠地工作,这是一个非常强大的设计。我认为你应该看看以完成你的任务。如果您想观看作者的视频,您可以:“。在服务器和客户端上都可以轻松地使用它。我创建了一个简单的示例。如果有人对Java实现感兴趣,我只写了一个示例应用程序和一篇博客文章。它使用Java、Maven、Comet、Bayeux和Spring。
你应该看看。它支持WebSocket、Worker、WebRTC和HTTP上的双向RPC,并且具有高度的可扩展性。Tornado声称它可以支持数千个并行连接,并在FriendFeed(现在的Facebook)上使用。它也是开源的。谢谢你链接到socket.io。我的HTTP服务器组件已经存在(在Erlang中),但是socket.io的方法非常鼓舞人心。