2016-06-01 10 views
1

das ich habe Probleme mit dem Socket-Server und Client socket.id. Mit [email protected] und [email protected] erhalte ich unterschiedliche socket.id von Client (socket.io-client) und Server (socket) nicht sicher, ob dies in der neuesten Version zu erwarten ist? E.Ich der Unterschied ist, dass die Server-Seite socket.id hat /#IAPEFvUDQkfV0NxcAAAA und Client-Seite socket.id hat IAPEFvUDQkfV0NxcAAAA wo, als ob ich die [email protected] ich das gleiche socket.id von Client und Server.socket.io Client und Server socket.id verschiedene

Dies ist die Version ...

admin$ npm list | grep socket 
├─┬ [email protected] 
│ ├─┬ [email protected] 
│ │ └─┬ [email protected] 
│ ├─┬ [email protected] 
│ └─┬ [email protected] 
├─┬ [email protected] 
│ ├─┬ [email protected] 
├─┬ [email protected] 
admin$ npm --version 
3.6.0 
admin$ node --version 
v5.6.0 
admin$ 

Dies ist der Server test_socket_server Code

# test_socket_server.js 
var io = require('socket.io').listen(5000); 
var serverurl = "http://0.0.0.0:5000/"; 

io.sockets.on('connection', function (socket) { 
    var socketid = socket.id 
    console.log('serversocketid', socketid) 
    socket.on('get_socketid_from_client', function(clientsocketid) { 
     console.log('get_socketid_from_client-clientsocketid', clientsocketid) 
     io.to(clientsocketid).emit('test_emit_on_clientsocketid') 
     io.to('/#'+clientsocketid).emit('test_emit_on_clientsocketid_modified') 
     socket.emit('test_emit_on_serversocketid') 
    }) 
}); 

Dies ist der test_socket_client Client-Code ist

# test_socket_client.js 
var io_client = require('socket.io/node_modules/socket.io-client') 
var serverurl = "http://0.0.0.0:5000/"; 
var options = { 
     transports: ['websocket'], 
     'force new connection': true 
}; 
var socket = io_client.connect(serverurl, options); 
socket.on("connect", function() { 
    console.log('clientsocketid', socket.id); 
    socket.emit('get_socketid_from_client', socket.id, function(data) { 
     console.log('get_socketid_from_client', data) 
    }); 
}); 
socket.on("test_emit_on_clientsocketid", function() { 
    console.log('test_emit_on_clientsocketid successful') 
}); 
socket.on("test_emit_on_clientsocketid_modified", function() { 
    console.log('test_emit_on_clientsocketid_modified successful') 
}); 
socket.on("test_emit_on_serversocketid", function() { 
    console.log('test_emit_on_serversocketid successful') 
}); 

Diese sind das Ergebnis ..

# Server side 
$ node test_socket_server.js 
serversocketid /#IAPEFvUDQkfV0NxcAAAA 
get_socketid_from_client-clientsocketid IAPEFvUDQkfV0NxcAAAA 

$ 

# Client side 
$ node test_socket_client.js 
clientsocketid IAPEFvUDQkfV0NxcAAAA 
test_emit_on_clientsocketid_modified successful 
test_emit_on_serversocketid successful 

$ 

Antwort

1

Ich weiß, ich bin spät dran, aber scheint, dass dies in der letzten Version behoben wurde vor wenigen Tagen veröffentlicht.

Das erste Element in release notes of version 1.5.0 sagt, dass sie gestoppt append/# vor id, wenn kein Namespace

+0

Während dieser Link, um die Frage zu beantworten, ist es besser, die wesentliche Teile der Antwort enthalten hier und geben Sie den Link als Referenz . Nur-Link-Antworten können ungültig werden, wenn sich die verknüpfte Seite ändert. - [Aus Bewertung] (/ review/low-quality-posts/13952124) –

+0

Fertig. Danke! –

Verwandte Themen