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
$
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) –
Fertig. Danke! –