【问题标题】:Websocket VS socket.io for a messenging web appWebsocket VS socket.io 用于消息网络应用程序
【发布时间】:2016-12-09 06:44:21
【问题描述】:

我想用nodejs实时开发一个messenger web应用程序,我想知道websocket和socket.io对于服务器和客户端的最佳选择是什么。我关心的是性能,就像我在两者中都使用websocket服务器和客户端或 socket.io 性能更好。谢谢 谢了。

【问题讨论】:

标签: node.js websocket socket.io


【解决方案1】:

socket.io 建立在WebSocket 之上。所以它不可能比WebSocket 更快。我认为socket.ioWebSocket 的作用与jQueryJavascript 的作用非常相似。当WebSocket 不可用时,socket.io 有备用解决方案。所以基本上,它支持更多的浏览器。我个人更喜欢使用WebSocket 而不是socket.io。这不是因为性能优势,实际上是对应用程序架构的更多控制。

【讨论】:

  • 不错的响应,但看起来 socket.io 为您提供了更多的灵活性,让您可以更灵活地使用 emit 发送事件,您可以为事件命名并在服务器中使用相同的名称
  • @user3741442 实际上恰恰相反。 socket.io 强制您使用event 模型来传递消息。我个人认为这不是一个好的架构选择。
  • 但有时最好拥有它,因为您不需要将事件类型放入您发送的消息中,假设您有一个聊天应用程序,您需要通过套接字发送登录信息和例如,如果您使用 websocket,您还必须将事件类型放入要发送的数据中
  • @Lewis 你能详细说明原因吗?
【解决方案2】:

不要将Websocketssocket.io 进行比较,Websocket 是一个协议,而socket.io 是一个使用Websocket 作为其协议之一的套接字框架(javascript)。 Socket.io(客户端)将在支持时使用 Websocket 进行通信,作为后备,当客户端设备不支持 Websocket 时,它将使用老式的 polling 方法。

【讨论】:

  • 你是对的,我知道我关心的是性能,比如如果我在服务器端和客户端都使用 websocket 或者 socket.io 什么会更有性能。 THX
  • 正如我所说,websocket 是一个协议,socket.io 是一个使用websocket 作为其协议之一的框架。 socket.io 使用websocket api 连接/发送/接收数据,socket.io 通过它自己的api 更容易使用websocket api。
  • Oki 感谢您的回复,我会在做出选择之前深入了解性能
猜你喜欢
  • 1970-01-01
  • 2012-09-29
  • 2012-04-20
  • 1970-01-01
  • 2012-08-26
  • 2013-01-11
  • 2021-02-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多