相关疑难解决方法(0)

socket.io和websockets之间的差异

node.js中socket.io和websockets之间有什么区别?
它们都是服务器推送技术吗?我觉得唯一的区别是,

  1. socket.io允许我通过指定事件名称来发送/发送消息.

  2. 在socket.io的情况下,来自服务器的消息将到达所有客户端,但对于websockets中的相同内容,我被迫保留所有连接的数组并循环通过它以向所有客户端发送消息.

另外,我想知道为什么网络检查员(如Chrome/firebug/fiddler)无法从服务器捕获这些消息(来自socket.io/websocket)?

请澄清一下.

firebug google-chrome websocket node.js socket.io

403
推荐指数
8
解决办法
17万
查看次数

实施可扩展聊天服务器的策略

我希望实现某种聊天服务器.我希望它能够扩展.这似乎是个大问题,所以我想我希望答案是方向指针,有点探索性.

最终用户客户端是Web或电话客户端.我认为某种websocket实现,比如Socket.IO很好.

在服务器端,我希望使用Node.js. 我希望架构具有可扩展性,以便用户数量不受限制(在合理的范围内,不会出现大受欢迎的机会,如果是这样的话,让更聪明,有经验的人工作的机会是合理的而不是目前只是我编码)每个聊天室的用户数量希望不受限制,或者可能是一些固定的大数字.这意味着我需要使用Node编写的几个服务器进行水平扩展.

假设一些负载均衡器(并且希望将来不是单点故障,但我不知道如何实现这一点,或者可能只是转移到AWS)正在从最终客户端向聊天服务器发送SocketIO连接.不同用户与不同服务器的连接可能在同一个房间,因此需要将消息发送到其他服务器.

我怎么能切实地实现这样的东西?希望不要太复杂.

问题:(1)如果所有服务器都需要处理所有消息,因为用户可以通过任何服务器登录,这是否会扩展?(2)我是否需要某种消息队列让服务器在它们之间进行通信?Rabbitmq的Pub-sub是否适用于此?或者如果是zeromq,我将如何使用pub sub进行缩放?Zeromq指南解释了使用REQ/REP类型的应用程序扩展到多个服务器.但不是Pub Sub.(3)或者我应该从XMPP开始?

我希望尽可能简单地工作.

architecture message-queue node.js

13
推荐指数
1
解决办法
5591
查看次数