我是否需要使用websocket将JSON数据发送到我的客户端? (这是一个很小的会话描述)
目前,我的客户端代码通过XHR将会话描述发送到我的Node.js服务器。收到后,我的节点服务器需要将其发送到“房间”中的另一个客户端。
我可以使用socket.io实现这一点,但是可以做一些更快/更安全的事情,比如XHR吗?
答案 0 :(得分:0)
如果您只是想从另一方接收优惠,我建议您尝试HTML5 Server Sent Events。
但是这可能会因浏览器支持的不同而带来问题,因此我会使用简单的长池请求。由于您只想获得SDP优惠,因此实现非常简单。
答案 1 :(得分:0)
不,您不需要使用WebSocket API通过服务器将JSON数据从客户端发送到客户端,但除非您使用Google专有的App Engine Channel API,否则WebSocket API可能是您的最佳选择。
另外,请记住,您不仅要发送会话描述,还要发送候选信息(多次)以及启动/关闭会话等可能需要的其他任意数据。
据我所知,WebSocket API是最快的解决方案(比XHR更快),因为在初始握手后,多个HTTP请求所涉及的所有开销都不存在。
如果你想自己编写代码,我会开始阅读最新的WebSocket draft并学习如何自己编写WebSocket服务器端脚本,否则你几乎不得不依赖像Socket这样的WebSocket库.IO或Google的App Engine渠道API等专有解决方案。
答案 2 :(得分:0)
如何使用303 HTTP status code?
第一个客户端将会话描述发送到资源X,服务器确认收据并以303状态代码响应,该状态代码指向新创建的资源Y,该资源Y累积其他客户端会话描述。
第一个客户端轮询资源X,直到它发生变化。
第二个客户端将其会话描述发送到资源A,服务器确认收据并更新资源Y.第一个客户端通过下一个轮询通知更新,现在将拥有第二个客户端的会话信息。