找出套接字是否等于null

时间:2015-03-07 12:45:46

标签: javascript node.js sockets socket.io

如何确定socket = null或undefined

我想要实现的目标

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

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

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

2 个答案:

答案 0 :(得分:3)

undefined和null是伪值,因此它们转换为boolean会导致false

你可以尝试:

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

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

答案 1 :(得分:0)

如何满足主题入门者的问题有一种改进的方法:

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

它是如何运作的?

如果!isSocket为真,则会提供空数据。 JS甚至不会去!socket.username!但是如果!isSocket为假,那么假设isSockt为真,并且JS会检查是否有用户名。这样代码看起来更干净