Pip*_*ipe 3 javascript sockets node.js socket.io
是否有连接到 socket.io 的所有套接字的“原型”?
我想定义一些可用于每个连接的套接字的函数。
目前我有:
io.sockets.on('connection', function(socket) {
//Define properties and functions for socket
socket.hello = function(){
console.log("hello from "+socket.id);
}
socket.hello();
});
Run Code Online (Sandbox Code Playgroud)
但我正在为每个套接字定义一个“新”hello 函数。有套接字原型吗?所以我可以有类似的东西:
Socket.prototype.hello = function(){
console.log("hello from "+socket.id);
}
io.sockets.on('connection', function(socket) {
socket.hello();
});
Run Code Online (Sandbox Code Playgroud)
有,尽管它似乎无法通过 main 获得require('socket.io')。
目前,您必须require() socket.js直接引用它:
var Socket = require('socket.io/lib/socket');
Socket.prototype.hello = function () {
console.log("hello from " + this.id);
};
Run Code Online (Sandbox Code Playgroud)
注意:在 中
prototype,您必须将实例引用为this。变量socket尚不可用。另外,就像反对修改本机类型的建议一样,只有一个
Object,因此尝试定义相同方法的多个模块可能会发生冲突。prototypeSocket.prototype