angularjs - Socket.io 是聊天模块的理想选择吗

标签 angularjs node.js sockets websocket chat

我正在处理 AngularjsNode.js基于应用程序。这是一个基于组织的应用程序。在这个应用程序中,我必须实现聊天功能。所以众所周知Socket.io是即时通讯应用程序及其可靠性的最佳解决方案。但除此之外,我对 Socket.io 几乎没有任何疑问。据我了解,当我们使用套接字编程(在我的情况下为 Socket.io)时,它为每个连接保留一个端口。如果组织的规模太大怎么办?它会起作用吗?在服务器端,我使用 Express js .将Socket.io在服务器上创建额外的负载?

我应该选择 Socket.ioHTTP ?

谢谢。

最佳答案

任何类型的交互时间的 HTTP 轮询都是非常低效的。您将有数以万计的客户反复询问您的服务器,“您有什么新东西要给我吗?”并且服务器定期响应“不,还没有”。

webSockets(socket.io 用作传输)的发明正是因为它们比 HTTP 轮询两种方式更有效,交互式通信。

现代服务器可以配置为同时处理数十万个 webSocket 连接。在您的应用程序的实际工作中,您的一台服务器实际上可以处理多少个服务器取决于许多因素,您在问题中都没有透露这些因素。但是,对于双向聊天来说,选择 webSocket/socket.io 并不是一个糟糕的架构选择——这就是发明这种应用程序的目的,因为在这种事情上它通常比 HTTP 轮询更好。

请参阅这些引用资料:

What are the pitfalls of using Websockets in place of RESTful HTTP?

Ajax vs Socket.io

Can this technology stack scale?

Do HTML WebSockets maintain an open connection for each client? Does this scale?

600k concurrent websocket connections on AWS using Node.js

Node.js w/1M concurrent connections!

HTML5 WebSocket: A Quantum Leap in Scalability for the Web

关于angularjs - Socket.io 是聊天模块的理想选择吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43222332/

相关文章:

javascript - 如何使用 AngularJS、Devise 和 UI Router 全局实现身份验证?

node.js - Jade 鬼属性

node.js - 跨多个服务器扩展 Socket.IO

node.js - hp2ps 工具的垃圾收集的日志堆样本

c++ - C++ 或 VC++.net 中的套接字编程

python - 将传出套接字绑定(bind)到特定(虚拟)适配器

javascript - AngularJs:使用某些值从 Controller 调用指令

javascript - 可编辑的 AngularJS 输入过滤器

javascript - AngularJS - 使用 Jasmine 和 mixpanel 进行测试

RAW套接字可以绑定(bind)到ip :port instead of an interface?吗