簡體   English   中英

SocketIO-如何將數據發送到特定客戶端

[英]SocketIO - How to send data to a specific client

我在將數據發送到特定客戶端時遇到問題。

服務器端

 var io = require('socket.io').listen(app.listen(app.get('port'))); io.sockets.on('connection', function (socket) { socket.on('onHabboConnection', function (data) { socket.id = data.id; socket.join(data.id); io.sockets.in(data.id).emit('onHabboConnected'); }); socket.on('onHabboConnected', function (data) { console.log("<" + socket.id + "> " + data.username + " has joined the game."); }); }); 

客戶端

  var socket = io.connect('http://localhost:3000'); $( document ).ready(function() { socket.emit('onHabboConnection', { id:'<%= user.id %>' }); }); socket.on('onHabboConnected', function () { console.log("WORKING" ); socket.emit('onHabboConnected', { username: '<%= user.username %>'}); }); 

  io.sockets.in(data.id).emit('onHabboConnected'); 

我已經嘗試了所有方法,但是它們都會引發錯誤。 這個不會拋出錯誤,但是什么也不會做!

您正在覆蓋在客戶端生成的唯一標識符socket.id 這就是為什么您要發出信號,但由於該客戶端不存在,它沒有任何作用:

socket.on('onHabboConnection', function (data) {
  //socket.id = data.id;  remove this
  socket.join(data.id);
  io.sockets.in(data.id).emit('onHabboConnected');
});

如果要更改socket.id ,請在客戶端進行更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM