调用方
var Net = require('net')
//var ProtoBuf = require("protobufjs");
var ServerSock = require('./SvrSocket');
var server = Net.createServer( onConnected );
server.listen(20660, function() {
console.log(' server running...');
});
function onConnected( socket ){
console.log('connected..');
var serverSocket = ServerSock.createSvrSocket(null);
serverSocket.setSocket( socket );
}
然后SvrSocket是这个对象
module.exports =
{
createSvrSocket : function( socket)
{
return new SvrSocket(socket);
},
}
function SvrSocket( socket )
{
this.m_Socket = socket;
}
SvrSocket.prototype.onData = function( buffer )
{
//this.foo();
}
SvrSocket.prototype.setSocket = function( socket ) {
this.m_Socket = socket;
this.m_Socket.on('data', this.onData );
this.foo();
}
SvrSocket.prototype.foo = function() {
}
这么做的话 就没有错误
但是如果我改成这样
module.exports =
{
createSvrSocket : function( socket)
{
return new SvrSocket(socket);
},
}
function SvrSocket( socket )
{
this.m_Socket = socket;
}
SvrSocket.prototype.onData = function( buffer )
{
this.foo();
}
SvrSocket.prototype.setSocket = function( socket ) {
this.m_Socket = socket;
this.m_Socket.on('data', this.onData );
//this.foo();
}
SvrSocket.prototype.foo = function() {
}
当socket收到消息的时候就会提示这个错
this.foo();
^
TypeError: Object #<Socket> has no method 'foo'