Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTTP上的实时双向JSON-RPC通信_Javascript_Http_Streaming_Comet_Json Rpc - Fatal编程技术网

Javascript HTTP上的实时双向JSON-RPC通信

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浏览器使用,并且易于在客户端使用。到目前

我正在构建一个JSON-RPC服务器,它通过HTTP接受请求。我希望支持双向通信(客户端和服务器都可以发送请求),具体的用例是发布/订阅架构,其中客户端发送
subscribe(X)
请求,并(几乎)实时接收
changed(X)
请求。据我所知,有几种方法可以通过HTTP实现这一点:

  • 长轮询
  • 网袋
  • 使用基于cookie的会话模型轮询调用
  • 流(保持HTTP连接打开)
  • 以上部分的组合
我正在寻找的是一个基于公认的互联网标准(如果可能的话)的解决方案,可以从web浏览器使用,并且易于在客户端使用。到目前为止,我支持流媒体(Twitter、CouchDB就是这样做的),但我不确定浏览器和JSON-RPC库对这一点的支持程度。另外,可能还有其他我不知道的方法


先谢谢你

据我所知,流媒体技术由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的方法非常鼓舞人心。