Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js RESTAPI还是websocket?_Node.js_Angularjs_Rest_Websocket - Fatal编程技术网

Node.js RESTAPI还是websocket?

Node.js RESTAPI还是websocket?,node.js,angularjs,rest,websocket,Node.js,Angularjs,Rest,Websocket,我正在开发一个需要实时事件的webapp和移动app(例如,我需要推送到另一个客户端的聊天)。我使用node、mongodb、angular、phonegap 我已经开始通过socket.io混合使用RESTAPI和事件,但我正在考虑在100%websocket应用程序中转换它 我知道开发会有点困难,但对您来说,什么是最好的解决方案 提前谢谢 如果您想支持大量客户机,异步技术无疑是一个不错的选择。异步使服务器能够随时向客户端发送数据。Rest是唯一的客户端到服务器。所以你需要投票,这是非常昂贵和

我正在开发一个需要实时事件的webapp和移动app(例如,我需要推送到另一个客户端的聊天)。我使用node、mongodb、angular、phonegap

我已经开始通过socket.io混合使用RESTAPI和事件,但我正在考虑在100%websocket应用程序中转换它

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


提前谢谢

如果您想支持大量客户机,异步技术无疑是一个不错的选择。异步使服务器能够随时向客户端发送数据。Rest是唯一的客户端到服务器。所以你需要投票,这是非常昂贵和低效的

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

Websocket本身是一种简单的连线,除了发送/接收之外没有添加任何协议。因此,您需要上面的内容来管理频道和订阅。跺脚通常是用来做这件事的。您可以查看stomp.js

你也可以考虑上证所。它没有web套接字复杂,依赖HTTP,因此更容易聊天。web套接字并不复杂,有libs可以帮助您

您还可以混合websocket作为api的一部分,并保留其余部分作为另一部分。你必须评估什么是有意义的

一些资源:

  • (我没有测试它,但是有很多星星,所以应该可以:-)

    • 好吧,它的用法问题。很久以前,当我开始使用NodeJS时,我有机会同时使用SocketIO和ExpressJS。
      所以我可以建议使用正确的工具来做正确的事情。如果它的意思是实时的,比如发送消息、聊天等,SocketIO是好的,但如果通过网络访问某些资源的要求很简单,那么实际上不需要实时实现,那么在客户端使用基本的RESTAPI,使用ajax或其他东西。它还有助于捕获数据,从而减少服务器上的负载


      您可以同时实现这两个堆栈,即SocketIO和nodejs应用程序中的一些RESTful实现库。

      您可能对WAMP()感兴趣,它在WebSocket上提供灵活的应用程序消息传递:

      • 远程过程调用(大致对应于REST)
      • 发布和订阅(用于实时推送/通知)

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

      谢谢,我已经查看了SSE,但它并不完全是我要搜索的内容。我想我会坚持这样做,并在我的应用程序中使用websocket。谢谢,所以我会使用websocket,因为我的应用程序需要实时,我认为websocket是一个很好的学习技术:)。嗯。。。投票人。。想解释一下吗!不,谢谢,我将只使用websocket,但我会为其他应用程序将您的网站添加书签;)@oberstet你能解释一下我如何在广播系统中使用RESTAPI+WebSocket作为CRUD应用程序吗。e、 g.由我更新的博客帖子上的评论存储在DB表中,并广播给所有有权访问该博客帖子的用户。@AshwinP当然。请你提交一个新的问题,并在这里链接?在评论中回答是乏味的。比如:“我如何用实时通知丰富REST/CRUD应用程序?”我不知道这是否可行。