在触发disconnect事件时使用socket.get

时间:2014-04-06 13:01:22

标签: node.js socket.io

我做了一个小游戏。当客户端断开连接时,我希望其他客户端得到通知,以便他们在客户端删除用户。

socket.on('disconnect', function () {
    socket.get('player', function (error, player) {
        console.log(player.pseudo + ' is now disconnected.');
        socket.broadcast.emit('removePlayer', player.pseudo);
    });
});

有时,我收到此错误:

            console.log(player.pseudo + ' is now disconnected.');
                              ^
TypeError: Cannot read property 'pseudo' of null

是因为player已被删除吗?这是获得玩家用户名的另一种方式吗?

编辑: 哦,我明白了。当用户没有发送伪信息时,会出现错误。所以,显然player.pseudo没有设置。现在我先检查玩家是否已知。

socket.on('disconnect', function (disconnect) {
    socket.get('player', function (error, player) {
        if (player) {
            console.log(player.pseudo + ' is now disconnected.');
            socket.broadcast.emit('removePlayer', player.pseudo);
        }
    });
});

0 个答案:

没有答案