2017-05-07 43 views
0

所以我想发送数据到一个特定的用户(具体套接字ID),我试过了。发送套接字数据到一个特定的套接字id socket.io

io.to(users[steamid].socket).emit('message', { 
     type: 'balance', 
     balance: row[0].balance 
    }); 

网友[steamid] .socket是我存放所有的插座的ID,它只是获取特定的ID我想要的,但是当我这样做,它的工作原理上的第一次,但,当它再次闪光它不没有工作。我不知道我做错了什么。

我开始打电话的方式是使用一个函数,网站有一个倒数计时器,当倒计时结束时,它调用获取获胜者套接字ID的函数,然后它给胜者所需的数据,我想知道为什么这不仅仅是第一次。

在此先感谢。

+0

如果它不工作,第二次,那么无论是'steamid'是错误的或'users [steamid] .socket'不是正确的套接字ID。你需要做一些调试来调查那些不起作用的值。 – jfriend00

回答

0

办法解决你的问题是保存插座,不插座IDS

如果user.socket是为用户的插座,然后你可以做

user.socket.emit('message', { ... }); 

或者在你的榜样

users[steamid].socket.emit('message', { ... }); 
+0

我得到一个错误用户[steamid] .socket.emit不是一个函数。 – JacobF

+0

@JacobF这是因为用户[steamid] .socket'目前包含套接字标识,而不是套接字。我在你的问题中看不到那部分代码,但你需要更新设置'user.socket'的代码,也就是做'user.socket = socket'而不是'user.socket = socket.socketId ' –

+0

那么我怎么会使用io.to它工作得很好?它只是出于某种原因一次工作.. – JacobF