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

Posted

技术标签:

【中文标题】如何从 socket.io 获取原生事件数组?【英文标题】:How to get array of native events from socket.io? 【发布时间】:2013-08-29 15:49:45 【问题描述】:

我正在我的节点 websocket 服务器中编写一些“屏蔽”代码,这样如果客户端尝试发送状态外的事件,套接字就会断开连接。

但由于 socket.io 处理它们的原生事件(如“连接”、“断开连接”等)类似于用户定义的事件,我很难在我的通用处理程序中区分它们

有没有办法以编程方式从 socket.io 检索所有内置事件的列表? 我想避免对这个列表进行硬编码。

【问题讨论】:

请看***.com/q/4753957/52568 谢谢,但我不确定这如何回答我的问题。我只是希望以编程方式获得内置事件列表(我知道如何编写事件处理程序和安全代码)。 【参考方案1】:

经过一番挖掘,发现有内部数据包名称列表,并且很容易访问:

var io = require('socket.io');
var events = io.parser.packets;

它不仅仅是三个常见的事件,但无论如何都是有用的。

【讨论】:

太棒了,这非常有用。如果 socket.io 添加了新事件,它可以让我以一种不会中断的方式编写我的代码 :) 非常感谢! 请记住,1.0 似乎很快会有新的更新,它实际上可能会改变兼容性,但显然您仍然可以像大多数人一样使用当前版本。

以上是关于如何从 socket.io 获取原生事件数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在前端获取 socket.on 函数?事件被触发和处理。我正在使用 socket.io、NodeJS 服务器和 Redis.io

如何在socket.io中的断开事件上获取断开连接的客户端的套接字ID

如何从不同的 socket.io 事件中更新消息?

如何使用 Express、AngularJS、Socket.io 广播和获取通知?

如何在用户从帐户注销时断开事件触发(node.js + express socket.io)

Node.js - 如何从 app.js 外部发出 socket.io 事件?