2013-06-27 14 views
5

Próbuję dodać niestandardowe informacje do mojego obiektu gniazda podczas łączenia, tak aby po odłączeniu gniazda mogłem odczytać te niestandardowe informacje.Dodawanie danych do obiektu gniazda socket.io

IE:

// (Client) 
socket.on('connect', function(data){ 
    socket.customInfo = 'customdata'; 
}); 

// (server) 
socket.on('disconnect', function() { 
    console.log(socket.customInfo); 
}); 

Odpowiedz

6

Ponieważ JavaScript można swobodnie dodawać atrybuty do dowolnego obiektu (tak jak ty). Jednak socket.io nie daje wbudowany sposób to zrobić (więc nie będzie musiał martwić się o konfliktach nazewnictwa):

socket.set('nickname', name, function() { 
    socket.emit('ready'); 
}); 

socket.get('nickname', function (err, name) { 
    console.log('Chat message by ', name); 
}); 

pamiętać, że jest tylko z jednej strony (klient lub serwer) . Oczywiście nie można udostępniać danych między klientem a serwerem bez komunikacji (tak sugeruje twój przykład).

Gniazdo w swojej przeglądarce i gniazdo na serwerze nie będzie udostępniać te same właściwości, jeśli ich ustawienie. Zasadniczo ustawiono dane tylko po stronie klienta (która znajduje się w pamięci przeglądarki NIE na serwerze).

+4

czy to już działa w wersji 1.0? – Alexis

+4

Najwyraźniej nie. Używam socket.io 1.3.4 – AlexStack

+0

Użyłem wersji 1.5.0, ale nie zadziała! –

Powiązane problemy