Node.JS を使用してサーバー/クライアント モデルを構築しており、変数のパケット ID を使用して既にインスタンス化されたクラスの関数を呼び出し、着信サーバー パケットをさまざまな関数で処理したいと考えています。したがって、PacketMethods
オブジェクトのプロパティとしてパケット ID を配置し、各パケット ID プロパティの値として呼び出す関数を配置します。ただし、この例では、 が呼び出されたときに、開始されたクラスServerList()
のメンバーではないため、未定義です。Client
this.socket
のメンバーになるように、パケット処理関数を呼び出すにはどうすればよいClient
ですか?
function Client (...)
{
this.socket = new net.Socket();
...
}
Client.prototype.HandlePacket = function(blocks)
{
try {
var sPacket = new WRPacket(blocks);
var PacketMethods = {
4352 : this.ServerList
4351 : this.LoginResponse
}
if(PacketMethods.hasOwnProperty(sPacket._packetid))
PacketMethods[sPacket._packetid](sPacket);
else
console.log('Unhandled Packet: '+sPacket._packetid);
} catch(err) {
console.log("Error at Packet-Handler:\n"+err);
}
}
Client.prototype.ServerList = function(Packet)
{
console.log('Serverlist received ...');
...
this.socket.end();
}
ありがとうございました!