node.js SPA webapp - 所有通信均通过 websockets

标签 node.js rest websocket

我有一个 SPA 应用程序(客户端上的 Backbone 和服务器上的 Node.js)。所有双向通信都是通过 Websocket 进行的。现在我想知道 - 这是个好主意吗?之前的方法有哪些缺点:客户端通过 REST API 向服务器发送数据,服务器通过 websockets 向客户端发送数据?

谢谢。

更新:

无论如何,我都有网络套接字,因为我的应用程序是多房间聊天。

最佳答案

即使您只考虑 RPC(“远程过程调用”),REST 的能力也不及 WebSocket。

REST 由于通过 HTTP 运行,因此无法管道 RPC。每个 HTTP 连接只能同步服务 1 个 RPC。并且浏览器限制到给定源的并行 HTTP 连接的数量。

通过 WebSocket 上的 RPC,您可以启动 100 个管道化 RPC,并在 RPC 返回时异步处理它们。

然后,通过 WebSocket,您还可以拥有服务器启动的通知。例如。您可以享受完整的发布和订阅。

WAMP (“Web 应用程序消息传递协议(protocol)”)在 WebSocket 上运行,并且专门为此而设计:SPA 需要在 1 个协议(protocol)中使用 2 种消息传递模式 - RPC 和 PubSub。

免责声明:我是 WAMP 的原作者,为 Tavendo 工作。

关于node.js SPA webapp - 所有通信均通过 websockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21348637/

相关文章:

javascript - 如何使用云函数、Node.js 和 Javascript 对 Firebase 实时数据库进行排序和筛选 'High Score' 排行榜

rest - 删除从 chrome 到 couchDB 的 rest 调用

android - 使用 AndroidAnnotations (Spring Rest) 处理超时

java - WebSocket 通信中消息代理的用途?

internet-explorer - WebSocket 在 Internet Explorer 10 中不工作

javascript - 错误 : Cannot find module '../node-v11-darwin-x64/node_sqlite3.node'

node.js - 为什么我无法在简单的 Web 应用程序中从 mongodb 检索数据?

node.js - 当需要 Node.js 中的模块时, 'dot slash' (./) 是强制性的吗?

node.js - 没有 id 的 PUT 请求

套接字(Websockets)、端口和协议(protocol)