Node.js socket.io:客户端将所有传入消息接收到单个函数中
我正在使用socket.io 1.2.0。在客户端浏览器中,如何在单个侦听器中接收所有事件Node.js socket.io:客户端将所有传入消息接收到单个函数中,node.js,socket.io,Node.js,Socket.io,我正在使用socket.io 1.2.0。在客户端浏览器中,如何在单个侦听器中接收所有事件 socket.on("*",fuction(event,data){ }); 从0.9…上载后,我以前的实现不起作用 我以前对接收所有事件的攻击 var original_$emit = getSocket().$emit; getSocket().$emit = function () { var args = Array.prototype.s
socket.on("*",fuction(event,data){
});
从0.9…上载后,我以前的实现不起作用
我以前对接收所有事件的攻击
var original_$emit = getSocket().$emit;
getSocket().$emit = function () {
var args = Array.prototype.slice.call(arguments);
original_$emit.apply(getSocket(), ["*"].concat(args));
if (!original_$emit.apply(getSocket(), arguments)) {
original_$emit.apply(getSocket(), ["default"].concat(args))
}
};
这不是一个完美的解决方案,但效果很好 代码更改服务器套接字.io /节点_模块/socket.io/lib/socket.js 第128行
if (~exports.events.indexOf(ev)) {
emit.apply(this, arguments);
}
改为
if (~exports.events.indexOf(ev)) {
var arg = ["*",arguments];
emit.apply(this, arg);
}
args.splice(0, 0, "*");
emit.apply(this, args);
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
第328行
emit.apply(this, args);
改为
if (~exports.events.indexOf(ev)) {
var arg = ["*",arguments];
emit.apply(this, arg);
}
args.splice(0, 0, "*");
emit.apply(this, args);
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
例如:
var io = require('socket.io')(SERVER);
io.on('connection', function (socket) {
socket.on('*', function (event, data) {
});
});
var socket = io();
socket.on("*", function (event, data) {
});
var io = require('socket.io-client');
var socket = io(URL,{});
socket.on("*", function (event, data) { });
代码将(浏览器javascript更改为node.js app)的socket.io node_modules/socket.io/node_modules/socket.io-client/socket.io.js 第724行
emit.apply(this, arg);
改为
if (~exports.events.indexOf(ev)) {
var arg = ["*",arguments];
emit.apply(this, arg);
}
args.splice(0, 0, "*");
emit.apply(this, args);
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
第847行
if (this.connected) {
emit.apply(this, args);
}
if (this.connected) {
emit.apply(this, args);
}
改为
if (~exports.events.indexOf(ev)) {
var arg = ["*",arguments];
emit.apply(this, arg);
}
args.splice(0, 0, "*");
emit.apply(this, args);
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
例如:
var io = require('socket.io')(SERVER);
io.on('connection', function (socket) {
socket.on('*', function (event, data) {
});
});
var socket = io();
socket.on("*", function (event, data) {
});
var io = require('socket.io-client');
var socket = io(URL,{});
socket.on("*", function (event, data) { });
require(“socket.io客户端””)的代码更改(node.js应用到node.js应用) /node_modules/socket.io-client/lib/socket.js 第129行
emit.apply(this, arguments);
改为
if (~exports.events.indexOf(ev)) {
var arg = ["*",arguments];
emit.apply(this, arg);
}
args.splice(0, 0, "*");
emit.apply(this, args);
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
第253行
改为
if (~exports.events.indexOf(ev)) {
var arg = ["*",arguments];
emit.apply(this, arg);
}
args.splice(0, 0, "*");
emit.apply(this, args);
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
例如:
var io = require('socket.io')(SERVER);
io.on('connection', function (socket) {
socket.on('*', function (event, data) {
});
});
var socket = io();
socket.on("*", function (event, data) {
});
var io = require('socket.io-client');
var socket = io(URL,{});
socket.on("*", function (event, data) { });
这不是一个完美的解决方案,但效果很好 代码更改服务器套接字.io /节点_模块/socket.io/lib/socket.js 第128行
if (~exports.events.indexOf(ev)) {
emit.apply(this, arguments);
}
改为
if (~exports.events.indexOf(ev)) {
var arg = ["*",arguments];
emit.apply(this, arg);
}
args.splice(0, 0, "*");
emit.apply(this, args);
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
第328行
emit.apply(this, args);
改为
if (~exports.events.indexOf(ev)) {
var arg = ["*",arguments];
emit.apply(this, arg);
}
args.splice(0, 0, "*");
emit.apply(this, args);
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
例如:
var io = require('socket.io')(SERVER);
io.on('connection', function (socket) {
socket.on('*', function (event, data) {
});
});
var socket = io();
socket.on("*", function (event, data) {
});
var io = require('socket.io-client');
var socket = io(URL,{});
socket.on("*", function (event, data) { });
代码将(浏览器javascript更改为node.js app)的socket.io node_modules/socket.io/node_modules/socket.io-client/socket.io.js 第724行
emit.apply(this, arg);
改为
if (~exports.events.indexOf(ev)) {
var arg = ["*",arguments];
emit.apply(this, arg);
}
args.splice(0, 0, "*");
emit.apply(this, args);
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
第847行
if (this.connected) {
emit.apply(this, args);
}
if (this.connected) {
emit.apply(this, args);
}
改为
if (~exports.events.indexOf(ev)) {
var arg = ["*",arguments];
emit.apply(this, arg);
}
args.splice(0, 0, "*");
emit.apply(this, args);
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
例如:
var io = require('socket.io')(SERVER);
io.on('connection', function (socket) {
socket.on('*', function (event, data) {
});
});
var socket = io();
socket.on("*", function (event, data) {
});
var io = require('socket.io-client');
var socket = io(URL,{});
socket.on("*", function (event, data) { });
require(“socket.io客户端””)的代码更改(node.js应用到node.js应用) /node_modules/socket.io-client/lib/socket.js 第129行
emit.apply(this, arguments);
改为
if (~exports.events.indexOf(ev)) {
var arg = ["*",arguments];
emit.apply(this, arg);
}
args.splice(0, 0, "*");
emit.apply(this, args);
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
第253行
改为
if (~exports.events.indexOf(ev)) {
var arg = ["*",arguments];
emit.apply(this, arg);
}
args.splice(0, 0, "*");
emit.apply(this, args);
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
var arg = ["*",ev];
emit.apply(this, arg);
if (this.connected) {
args.splice(0, 0, "*");
emit.apply(this, args);
}
var arg = ["*",ev];
例如:
var io = require('socket.io')(SERVER);
io.on('connection', function (socket) {
socket.on('*', function (event, data) {
});
});
var socket = io();
socket.on("*", function (event, data) {
});
var io = require('socket.io-client');
var socket = io(URL,{});
socket.on("*", function (event, data) { });
我认为这是重复的。看见解决方案:覆盖
socket.on
和socket.emit
@croper$emit在1.2.0中不可用;在那一页上,他们给出的结果都是0.9…我想这是重复的。看见解决方案:覆盖socket.on
和socket.emit
@croper$emit在1.2.0中不可用;在那一页,他们给出的结果都是0.9。。。