在socket.io中添加函数到socket的最佳方法是什么?

是否有连接到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(); }); 

但是我为每个套接字定义了一个“新”hello函数。 有套接字原型吗? 所以我可以有这样的事情:

 Socket.prototype.hello = function(){ console.log("hello from "+socket.id); } io.sockets.on('connection', function(socket) { socket.hello(); }); 

有,虽然它似乎不可以通过主要的require('socket.io')

目前,您必须直接require() socket.js来引用它:

 var Socket = require('socket.io/lib/socket'); Socket.prototype.hello = function () { console.log("hello from " + this.id); }; 

注意:从prototype ,你必须引用这个实例。 socketvariables将不可用。

此外,就像针对修改本机types的build议一样,如Objectprototype – 只有一个Socket.prototype ,所以有可能碰到多个模块的碰撞,试图定义相同的方法。