0
此代碼是在我的Node.js服務器應用程序運行:如何正確封裝socket.io套接字?
io.sockets.on('connection', function (socket) {
var c = new Client(socket, Tools.GenerateID());
waitingClients.push(c);
allClients.push(c);
if (waitingClients.length === 2)
{
activeGames.push(new Game([waitingClients.pop(), waitingClients.pop()]));
}
});
function Client(socket, id)
{
this.Socket = socket;
this.ID = id;
this.Player = new Player();
this.Update = function(supply)
{
socket.emit('update', { Actions: this.Player.Actions, Buys: this.Player.Buys, Coins: this.Player.Coins, Hand: this.Player.Hand, Phase: this.Player.Phase, Supply: supply});
}
socket.on('play', function(data) {
console.log(data);
console.log(this.Player);
});
socket.emit('id', id);
}
我遇到的麻煩的部分是在「玩」事件的事件處理程序。 console.log(this.Player)
輸出undefined
。我不明白爲什麼它是錯誤的,因爲'this'是指除了我的客戶端對象(套接字?匿名函數?)之外的東西,但我不知道如何重新安排代碼來正確處理'play'事件並且可以完全訪問Client對象的成員。
哦,我的天哪,我怎麼會忘記。我甚至看過一堆代碼示例。謝謝! – 2013-03-26 23:33:53