Socket.io 事件列表

Posted

技术标签:

【中文标题】Socket.io 事件列表【英文标题】:List of Socket.io Events 【发布时间】:2014-08-05 03:11:12 【问题描述】:

有谁知道 Socket.io 中内置了哪些事件? 例如:connectiondisconnectjoin

【问题讨论】:

【参考方案1】:

这是我在官方文档中找到的所有内容:

Client-side events for socket.io object:

connect。连接成功时触发。 connect_error。在连接错误时触发。参数: Object 错误对象 connect_timeout。在连接超时时触发。 reconnect。成功重新连接后触发。参数: Number重连尝试次数 reconnect_attempt。尝试重新连接时触发。 reconnecting。尝试重新连接时触发。参数: Number重连尝试次数 reconnect_error。在重新连接尝试错误时触发。参数: Object 错误对象 reconnect_failed。在reconnectionAttempts 内无法重新连接时触发

Client-side events for socket object:

connect。连接时触发。 error。连接错误时触发参数: Object错误数据 disconnect。断开连接时触发。 reconnect。成功重新连接后触发。参数: Number重连尝试次数 reconnect_attempt。尝试重新连接时触发。 reconnecting。尝试重新连接时触发。参数: Number重连尝试次数 reconnect_error。在重新连接尝试错误时触发。参数: Object 错误对象 reconnect_failed。在reconnectionAttempts 内无法重新连接时触发

Server-side events:

connection/connect。在连接时触发。参数: Socket 传入的套接字。

编辑:

对于当前版本 (1.3.4),reconnect_attemptreconnecting 客户端事件是同义词。

【讨论】:

嗯,这不可能,因为它甚至没有列出“断开连接”。文档似乎很不完整。有人有合适的清单吗? @Killroy 我在答案中添加了客户端 socket 事件。但是,很遗憾,我在文档和其他地方找不到服务器 socket 事件。 @Killroy 在研究了 socket.io 源代码一段时间后,我得出结论,服务器端套接字与客户端套接字不同。例如,它没有reconnectreconnect_attemptreconnectingreconnect_errorreconnect_failed 事件,因为在每次重新连接时都会创建新的服务器端套接字。这就是我能说的。如果我发现更多信息,我会告诉你的。 还有一个服务器端“断开连接”事件(已在 1.3.5 中验证),但我实际上无法在任何地方找到它的文档。这些文档的用法是如此抽象(cough 可怕的cough),我可能只是在看错误的东西。 重要!还有更多事件,但是我们都可以得出结论,文档很烂。这个问题 (github.com/socketio/socket.io/issues/1814) 关于一个新事件(正式实施花了 2 年时间) - 而且无处可寻。但是,它就在那里 - 事件 disconnecting 可能很有用。

以上是关于Socket.io 事件列表的主要内容,如果未能解决你的问题,请参考以下文章

socket.io 和异步事件

如何检测未注册的socket.io事件?

socket.io 连接事件未在 Firefox 中触发

socket.io 连接事件不起作用,为啥?

如何从 socket.io 获取原生事件数组?

socket.io:没有触发断开事件