我的页面上有一堆socket.io监听器,如下例所示:
var socket = io.connect('/');
socket.on('listner1', function (data) {
// some stuff here
});
socket.on('listner2', function (data) {
// some stuff here
});
socket.on('listner3', function (data) {
// some stuff here
});
如何编写一个能列出我听众名字的函数?
function getListenerNames(){
// print out listener names here
}
答案 0 :(得分:2)
在服务器socket.eventNames()
上将获得安装了侦听器的事件名称列表。
socket.io服务器套接字继承自EventEmitter
,因此它来自.on()
,它具有EventEmitter
对象的所有方法。您可以看到其他EventEmitter
方法here。
在客户端,socket.io似乎使用EventEmitter接口的“轻型”版本,您可以看到here in the emitter doc that it uses。您可以使用以下命令获取与每个事件关联的侦听器函数:
socket.listeners("connect");
您传递了您感兴趣的活动名称。
整个数据结构(如果你想直接搞乱它)似乎存储在socket._callbacks
,但是没有记录,可能会有变化。