我正在实施一个客户端 - 服务器API与长作业处理时间(在某些情况下,分钟的顺序)。一些API调用很短,并立即作出响应,但双门轿车需要一些后端处理。我使用node.js作为Web服务器。我的当前implementaion是如下 -异步RestFul vs Websocket
客户端(浏览器)< - >节点的js < - >发动机
发动机是一后端处理,其处理的每个作业(C++代码)。所有的交互都是http。现在,传统上我会将异步ajax/restful请求和短作业作为同步restful请求执行长作业。
我将不得不为长处理作业(处理大量数据)的状态更新 - 喜欢中间结果,完成百分比等
我在的WebSockets loolking作为替代(我是比较新的这)。这里是我的问题 -
- 我应该看看websockets的长工作,而不是异步restful api(我想避免处理客户端超时,长轮询等)?
- 如何将所有的请求移动到websockets(为什么要休息一下呢?)
- 一般而言,任何实现此架构的最佳实践。 (之前,我从事与web服务器和引擎之间的交互的项目,作为与自定义命令的简单TCP连接。)
注意: - 我不担心跨浏览器支持(尤其是旧版本)现在。
像下面的建议一样,nodejs和使用socket.io的websockets很好。如果浏览器不支持Websocket,它会落入另一个协议,但仍然有效。我认为这将比寻找一个C++解决方案更为强大。 – coffekid 2014-05-12 18:26:37