【发布时间】:2014-11-26 18:10:36
【问题描述】:
我目前遇到了一个小型 Node.JS 应用程序的问题。它与例如 Socket.IO 示例聊天应用程序极为相似:每当用户向服务器发送数据时,我都需要处理数据,然后将其广播给所有用户。但是,处理数据的方式取决于接收数据的用户。我尝试为每个套接字更改 Socket#emit 方法(以便在发送数据之前处理数据),但广播不使用它。有什么办法可以解决这个问题吗?
提前致谢。
编辑
这是我尝试过的():
var io = require('socket.io');
io.use(function(socket, next) {
var old_emit = socket.emit;
socket.emit = function() {
// do something with the data (arguments[1] in this case)
// the processing of the data depends on a value that is
// unique to each connection, and can't be sent over to the client
old_emit.apply(socket, arguments);
}
});
我尝试了上面的代码,因为最初我认为广播会为每个连接在其他地方调用emit。
【问题讨论】:
-
你有没有尝试过?贴出代码有助于我们理解
-
pmverma,正如我在问题中所说,我已经尝试重载
Socket#emit方法。我会尝试添加更多信息。