2016-03-21 28 views
1

Socket.io mesajlar kendini göstermiyor ip. Örneğin Socket.io, kendinize mesajlar

var id = 333; 
socket.broadcast.to(id).emit('user', user); 

İyi çalışan, ancak ileti yalnızca müşteri # 333 ancak gönderilen mesajın daha kullanıcı olduğunu, mesaj istemcisi bir kopyası yok.

ben bu şekilde çözmek istedim, ama

socket.broadcast.to(socket.id).emit('user', user); 

Neden çalışmıyor? daha kodu olmadan

+0

Burada yapmaya çalıştığınız şeyi pek takip etmiyorum. socket.id, geçerli kullanıcının soket kimliğidir (waaayyy). Bu konuda ayrıntılı olabilir misiniz? –

+0

@SterlingArcher Tüm kullanıcım socket.id tarafından tanımlandı, ancak mesaj sadece gönderenin değil gönderenin değil. – Emerceen

+0

Anlamadım ... ne olmasını isterdin? Lütfen ne yapmak istediğinizin bazı giriş ve çıkış örneklerini ekleyin. –

cevap

0

onun istediğiniz ama bir şey tek bir kullanıcıya mesaj göndermek için i broadcast bildiği gibi socket nesnesi ve Bildiğim kadarıyla socket.emit

kullandığını kullanmalıdır belli ne söylemek zor sadece herkese kendin dışında söylemek için kullanılır.

var userList = []; 
io.on('connection', function (socket) { 

    socket.on('userData', function (userDetails) { 
     userDetails.socket = socket; 
     userList[userDetails.id] = userDetails 
    }); 
}); 

ikonların Bir kullanıcı soketine bağlanır ve bir tam yüklü kullanıcı için sayfa onun kimliğini gönderdiğinde: kullanıcıların takip geldiğinde ben genellikle yaptığımız Ne

i aşağıdakilere sahip olduğu (ya da isterseniz bir jeton) O zaman kullanıcının socket nolu kısmını haritaya çizerek, bu kullanıcıya göndermek istediğimi hızlı bir şekilde tekrar alabiliyorum.


örnek aşağıdaki gibi olabilir:

user.id = 33 sonra kullanıcılar soket sonra çekilen ve en listeye konur

sunucumuzla userData işlevi yayar yüklenen

bizim sunucuya bağlanır satır 33

İhtiyacımız olduğunda, kullanıcılara ulaşmak için aşağıdaki kodu kullanabiliriz socket:

socket = userList[33]; 

ya da biz nesne varsa: Bu size yardımcı olur umarım

socket = userList[user.id]; 

.