我做了一些東西來縮小我的socket.on()代碼。Node.js和Socket.io - 動態socket.on()
在這方面,我有
...
var io = require('socket.io').listen(...);
io.sockets.on('connection', function(socket) {
// my code for this client
...
});
已經得到了客戶端套接字我有這個
socket.on('event1', function(args1) {callback1(args1);});
socket.on('event2', function(args2) {callback2(args2);});
...
socket.on('eventN', function(argsN) {callbackN(argsN);});
之前,現在我有
var events = {
event1: 'callback1',
event2: 'callback2',
...
eventN: 'callbackN'
};
for(var event in events) {
var callback = events[event];
socket.on(event, function() {
this[callback].apply(this, arguments);
});
}
看來,callbackN功能總是打電話。 當event1與args1觸發時,callbackN與args1通話,當通過args2觸發event2時,callbackN與args2通話。
出了什麼問題?
什麼'this'refer什麼? – warchimede
'this'指向類作用域,所有這些代碼都運行在相同的類/名稱空間中。 – Typhon