我正在实现一个带有长时间作业处理(一些情况下需要几分钟)的客户端 - 服务器API。其中一些api调用是短暂的并立即回应,但有些需要后端处理。我正在使用node.js作为Web服务器。我的当前实现方式如下 -
客户端(浏览器) <-> node js <-> 引擎
引擎是一个后端进程,处理每个作业 (C++代码)。所有交互都是http。现在,传统上我会将长时间的作业实现为异步ajax/restful请求,并将短时间的作业实现为同步restful 请求。
我要对长时间处理任务进行状态更新(处理大量数据),例如中间结果、完成百分比等。
我正在考虑WebSocket作为一种替代方案(而我相对来说是新手)。以下是我的问题 -
1.我是否应该考虑使用WebSocket替代异步RESTful API来处理长时间作业(我非常希望避免处理客户端超时、长轮询等)?
2.将所有请求转移到WebSocket中如何(为什么不要考虑REST呢?)?
3.一般来说,有没有实现这种体系结构的最佳实践。(以前,我曾经参与过web服务器和引擎之间进行简单TCP连接的项目。)
注意:- 我现在不担心跨浏览器的支持(特别是旧版本)。
客户端(浏览器) <-> node js <-> 引擎
引擎是一个后端进程,处理每个作业 (C++代码)。所有交互都是http。现在,传统上我会将长时间的作业实现为异步ajax/restful请求,并将短时间的作业实现为同步restful 请求。
我要对长时间处理任务进行状态更新(处理大量数据),例如中间结果、完成百分比等。
我正在考虑WebSocket作为一种替代方案(而我相对来说是新手)。以下是我的问题 -
1.我是否应该考虑使用WebSocket替代异步RESTful API来处理长时间作业(我非常希望避免处理客户端超时、长轮询等)?
2.将所有请求转移到WebSocket中如何(为什么不要考虑REST呢?)?
3.一般来说,有没有实现这种体系结构的最佳实践。(以前,我曾经参与过web服务器和引擎之间进行简单TCP连接的项目。)
注意:- 我现在不担心跨浏览器的支持(特别是旧版本)。