查看套接字是否等于 null

Find out if a socket equals null

如何确定套接字是否为 null 或 undefined

我想要实现的目标示例

if(socket.username == NULL){
givenulldata()
}

这是我在断开连接时删除的套接字,但有时用户实际上并没有离开网站,我不想在不需要时用请刷新页面的东西来惹恼他们。由于在笔记本电脑上删除 运行 电池没电或 wifi 断开连接并重新连接(移动设备更常见的问题)等

socket.on('disconnect', function(data){
if(!socket.username) return;
delete username[socket.username];
});

undefined 和 null 是 falsy 值,所以它们转换为 boolean 结果为 false

你可以试试:

if((!socket) || (socket && !(socket.username))){
    givenulldata()
}

通过这个你检查套接字是否不存在或者它是否存在但没有用户名

有一种改进的方法来满足主题发起人的问题:

if (!isSocket || !socket.username) {
    givenulldata()
}

它是如何工作的?

如果!isSocket为真,则给出空数据。 JS 甚至不会去 !socket.username !但如果 !isSocket 为假,则假定 isSockt 为真,然后 JS 去检查是否有用户名。这样代码看起来更干净