2013-06-27 7 views
5

Ich versuche, meinem Socket-Objekt beim Herstellen einer Verbindung einige benutzerdefinierte Informationen hinzuzufügen, damit ich beim Trennen des Sockets diese benutzerdefinierten Informationen lesen kann.Hinzufügen von Daten zu einem socket.io-Socket-Objekt

IE:

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

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

Antwort

6

Da es JavaScript Sie frei Attribute für jedes Objekt hinzufügen können (so wie Sie getan haben). Allerdings socket.io nicht geben Ihnen eine integrierte Möglichkeit, das zu tun (so dass Sie sich nicht um Namenskonflikte kümmern):

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

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

Beachten Sie, dass dies nur auf einer Seite (entweder Client oder Server) . Offensichtlich können Sie keine Daten zwischen Client und Server ohne Kommunikation teilen (das ist, was Ihr Beispiel vorschlägt).

Die Buchse in Ihrem Browser und die Buchse in dem Server die gleichen Eigenschaften nicht teilen, wenn Sie sie eingestellt. Grundsätzlich haben Sie die Daten nur auf der Client-Seite (die in Ihrem Browser Speicher NICHT auf dem Server ist) festgelegt.

+4

funktioniert das mit der Version 1.0? – Alexis

+4

Offensichtlich nicht. Ich benutze socket.io 1.3.4 – AlexStack

+0

Ich habe Version 1.5.0 verwendet, wird aber nicht funktionieren! –

Verwandte Themen