2017-02-23 57 views
1

我使用的是socket.io 1.7.3版本。服務器代碼:socket.io發射到一個客戶端不工作

io.on('connection', function (socket) { 
    console.log(socket.id); // CdnNBVe9ktJmMcb1AAAA 
    socket.to(socket.id).emit('something'); 
    socket.emit('something'); // if I do it without to, it works but to all clients 
    console.log(socket.rooms); // { CdnNBVe9ktJmMcb1AAAA 'CdnNBVe9ktJmMcb1AAAA' } 
}); 

客戶:

<script src="/socket.io/socket.io.js"></script> 
var socket = io.connect(..); 
socket.on('connect', function() { 
    console.log(socket.id); // CdnNBVe9ktJmMcb1AAAA 
    socket.on('something', function() { 
     alert('it works'); 
    }); 
}); 

爲什麼它不工作?雖然所有console.log似乎都是正確的,但我沒有收到任何警報。

回答

0

將消息發送給特定的客戶端,您必須提供客戶端的socket.id到服務器,並在服務器端socket.io需要通過提供該消息的照顧,

socket.broadcast.to('ID').emit('send msg', {somedata : somedata_server}); 

在你的代碼

socket.broadcast.to(socket.id).emit('something'); 
+0

既沒有爲我工作,但無論如何,在文檔,我可以看到這一點:socket.to().emit(「嗨」,「我剛認識你」); – dontHaveName

相關問題