2017-05-07 41 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