<分区>
我正在开发需要实时事件的网络应用程序和移动应用程序(例如,我需要推送给其他客户端的聊天)。我使用 node、mongodb、angular、phonegap。
我已经开始通过 socket.io 混合使用 REST API 和事件,但我正在考虑将其转换为 100% 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"