node.js - 如何一般地过滤所有 socket.io 事件数据

标签 node.js socket.io

如果我愿意

socket.emit("eventname",data);

我正在发出一个事件到套接字。如果我想过滤这个发射,我会附加一个函数并使用这个函数

function emit(socket,eventname,data)
{
  .. // process event data
  socket.emit(eventname,data); // emiting processed
}

但我想以某种方式覆盖该对象,以方便地处理或修改所有输出(和输入事件数据),例如修剪对象的字符串。 O 还会为语法异常添加一个过滤器,以避免可能导致进程崩溃的错误格式的 json 或注入(inject)过滤器...

如何在不直接修改 socket.io 代码但以某种方式重写的情况下做到这一点。对不起,如果这个问题很愚蠢。

最佳答案

你可以重新定义 socket.emit

socket.__emit = socket.emit

socket.emit = function (channel, data) {
  //process data;
  socket.__emit(channel, data);
};

关于node.js - 如何一般地过滤所有 socket.io 事件数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15601049/

相关文章:

javascript - NodeJS - 从其他文件导入函数并像以前一样使用它们?

javascript - Node.js 后端未正确接收表单数据

event-handling - 我应该为 Pub 和 Sub 与 Redis 使用单独的连接吗?

node.js - 将 Socket.io 与 Heroku 结合使用

javascript - Socket.io 不断重复连接并忽略其他事件

node.js - Node postgres 'event emitter style' 与 'callback style'

node.js - 如何从依赖项的依赖项导入接口(interface)

node.js - MongoDB 中双重嵌套数组的聚合文档

node.js - 我可以在 socket.io 中获取客户端连接到的房间列表吗?

logging - 我如何插入 socket.io 的内置日志系统来生成我自己的消息?