在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
,你必须引用这个实例。socket
variables将不可用。此外,就像针对修改本机types的build议一样,如
Object
的prototype
– 只有一个Socket.prototype
,所以有可能碰到多个模块的碰撞,试图定义相同的方法。