gpt4 book ai didi

node.js - 客户端socket.io和服务器端socket.id不同

转载 作者:太空宇宙 更新时间:2023-11-04 00:39:13 24 4
gpt4 key购买 nike

我在使用套接字服务器和客户端套接字.id 时遇到问题。使用 node@5.6.0socket@1.4.6 我从客户端(socket.io-客户端)和服务器(socket)不确定这是否是最新版本中所期望的?即,区别在于服务器端 socket.id 具有 /#IAPEFvUDQkfV0NxcAAAA ,而客户端 socket.id 具有 IAPEFvUDQkfV0NxcAAAA > 就好像我使用 socket@1.3.1 我从客户端和服务器获得相同的 socket.id。

这是版本...

admin$ npm list | grep socket
├─┬ socket.io@1.4.6
│ ├─┬ socket.io-adapter@0.4.0
│ │ └─┬ socket.io-parser@2.2.2
│ ├─┬ socket.io-client@1.4.6
│ └─┬ socket.io-parser@2.2.6
├─┬ socket.io-client@1.3.1
│ ├─┬ socket.io-parser@2.2.2
├─┬ socket.io-stream@0.6.1
admin$ npm --version
3.6.0
admin$ node --version
v5.6.0
admin$

这是服务器test_socket_server代码

# 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')
})
});

这是客户端test_socket_client代码

# 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')
});

这些是结果...

# 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

$

最佳答案

我知道我迟到了,但似乎这个问题已在几天前发布的最后一个版本中修复。

release notes of version 1.5.0 中的第一项说他们在没有命名空间时停止在 id 之前追加/#

关于node.js - 客户端socket.io和服务器端socket.id不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37576748/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com