node.js - REST API 还是网络套接字?

标签 node.js angularjs rest websocket

<分区>

我正在开发需要实时事件的网络应用程序和移动应用程序(例如,我需要推送给其他客户端的聊天)。我使用 node、mongodb、angular、phonegap。

我已经开始通过 socket.io 混合使用 REST API 和事件,但我正在考虑将其转换为 100% websocket 应用程序。

我知道开发会有点困难,但对您来说最好的解决方案是什么?

提前致谢!

最佳答案

如果您想支持大量客户端,异步技术绝对是您的不二之选。异步使服务器能够随时向客户端发送数据。休息只是客户端到服务器。所以你需要轮询哪个是真正昂贵且低效的。

Websocket 也更好,因为它在网络上使用的数据更少。连接后不依赖 HTTP。实际上建立了一个TCP连接。如果有一些代理,您可能需要小心。

Websocket 本身就是一个简单的线路,除了发送/接收之外没有添加任何协议(protocol)。所以你需要上面的东西来管理 channel 和订阅。 STOMP 通常用于此。你可以看看 stomp.js。

您也可以考虑 SSE。它比 web-socket 更简单,依赖 HTTP,因此更容易交谈。好吧,网络套接字并不复杂,有一些库可以提供帮助。

您也可以将 websocket 混合用于您的一部分 api,并为另一部分保留 REST。你必须评估什么是有意义的。

一些资源:

关于node.js - REST API 还是网络套接字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24953013/

相关文章:

node.js - 找不到命令 'nodejs',但可以用 : sudo apt install nodejs in ububtu 安装

node.js - mongoose Document#update 的所有可能回调参数是什么?

node.js - 环回 postgresql 关系 "public.acl"

javascript - AngularJS 在 Wordpress 插件中工作吗

javascript - 返回数据后如何在 AngularJs 中链接多个方法

web-services - REST API - 单个资源的更新会更改多个其他资源

java - 在java中用另一个相同类型的对象更新一个对象的最佳方法

node.js - Nodejs单元测试错误 "sinon.restore is not a function"

javascript - 使用纯 JavaScript 渲染这些 Angular2 组件

java - 如何在postman中设置属性