我正在使用socket.io,它的安装速度很快(感谢他们使用页面上的例子),但我想了解更多关于幕后到底是怎么回事,以及是什么技术让它工作的更多信息。
socket.io的确切机制是什么?
它是在80端口还是在单独的端口上?
它是真的保持开放,还是那部分是模拟的?
有没有办法分析每个套接字事件?(有点像使用fiddler查看ajax调用中发生了什么)
发布于 2013-05-24 01:24:36
为了进行调试,您可能希望尝试使用。
下面是的简要概述
Socket.IO的目标是将类似WebSocket的应用程序接口带到许多浏览器和设备上,并具有一些特定功能,以帮助创建真实世界的实时应用程序和游戏。
Socket.IO套接字剖析
Socket.IO客户端首先决定用于连接的传输。
Socket.IO套接字的状态可以是disconnected
、disconnecting
、connected
和connecting
。
传输连接可以是closed
、closing
、open
和opening
。
简单的超文本传输协议握手发生在Socket.IO连接的开始。如果握手成功,则导致客户端接收:
connections.
close timeout
).的秒数,预计在传输连接关闭后的秒数内,如果未重新打开传输连接,则认为套接字已断开连接
此时,套接字被认为是已连接的,并向传输发送信号以打开连接。
如果传输连接关闭,两端都要缓冲消息,然后适当地对它们进行帧处理,以便在连接恢复时作为批处理发送。
如果在协商的超时时间内没有恢复连接,则认为套接字已断开连接。此时,客户端可能决定重新连接套接字,这意味着新的握手。
如果您需要更多细节,可以阅读规范here的其余部分
发布于 2013-05-24 01:35:44
JAM的帖子很好地总结了什么是socket.io;我想特别解决您的其他一些问题。
http.Server
实例并向其添加处理程序。它本身并不侦听网络端口;它只是向现有的HTTP服务器添加特定于Socket.IO的处理程序。(但是,如果您使用一个数字调用io.listen()
,它会在内部创建一个新的HTTP服务器,该服务器侦听指定的端口并连接到该端口。)也是如此
https://stackoverflow.com/questions/16719282
复制相似问题