如何一般过滤所有socket.io事件数据

时间:2013-03-24 16:35:37

标签: node.js socket.io

如果我这样做

socket.emit("eventname",data);

向socket发送事件。如果我想过滤这个发射我会附加一个函数并使用这个函数

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

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

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

1 个答案:

答案 0 :(得分:4)

您可以重新定义socket.emit

socket.__emit = socket.emit

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