首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >socket.io是如何工作的?

socket.io是如何工作的?
EN

Stack Overflow用户
提问于 2013-05-24 00:31:19
回答 2查看 21.3K关注 0票数 70

我正在使用socket.io,它的安装速度很快(感谢他们使用页面上的例子),但我想了解更多关于幕后到底是怎么回事,以及是什么技术让它工作的更多信息。

socket.io的确切机制是什么?

它是在80端口还是在单独的端口上?

它是真的保持开放,还是那部分是模拟的?

有没有办法分析每个套接字事件?(有点像使用fiddler查看ajax调用中发生了什么)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-24 01:24:36

为了进行调试,您可能希望尝试使用。

下面是的简要概述

Socket.IO的目标是将类似WebSocket的应用程序接口带到许多浏览器和设备上,并具有一些特定功能,以帮助创建真实世界的实时应用程序和游戏。

  • 多传输支持(旧的用户代理、移动浏览器等)。通过带缓冲的networks)
  • Lightweight支持通过检测同一连接下的
    • 多个套接字(适用于移动设备或位于HTTP之上的坏的HTTP协议。

Socket.IO套接字剖析

Socket.IO客户端首先决定用于连接的传输。

Socket.IO套接字的状态可以是disconnecteddisconnectingconnectedconnecting

传输连接可以是closedclosingopenopening

简单的超文本传输协议握手发生在Socket.IO连接的开始。如果握手成功,则导致客户端接收:

connections.

  • A

  • 将为传输提供的会话id打开(close timeout).

的秒数,预计在传输连接关闭后的秒数内,如果未重新打开传输连接,则认为套接字已断开连接

此时,套接字被认为是已连接的,并向传输发送信号以打开连接。

如果传输连接关闭,两端都要缓冲消息,然后适当地对它们进行帧处理,以便在连接恢复时作为批处理发送。

如果在协商的超时时间内没有恢复连接,则认为套接字已断开连接。此时,客户端可能决定重新连接套接字,这意味着新的握手。

如果您需要更多细节,可以阅读规范here的其余部分

票数 42
EN

Stack Overflow用户

发布于 2013-05-24 01:35:44

JAM的帖子很好地总结了什么是socket.io;我想特别解决您的其他一些问题。

  • Socket.io附加到http.Server实例并向其添加处理程序。它本身并不侦听网络端口;它只是向现有的HTTP服务器添加特定于Socket.IO的处理程序。(但是,如果您使用一个数字调用io.listen(),它会在内部创建一个新的HTTP服务器,该服务器侦听指定的端口并连接到该端口。)
  • 如果它使用WebSockets传输,它实际上会保持打开状态。它还包括使用传统(长)轮询ajax请求的后备机制。因此,答案取决于浏览器支持哪些API。(您可以选择配置要使用的回退(如果有)。)
  • Fiddler现在支持websockets,Chrome的开发人员工具:

也是如此

票数 34
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16719282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档