繁体   English   中英

将 Python socketio 服务器连接到 node js socketio 客户端时遇到问题

[英]Trouble connecting Python socketio server to node js socketio client

我在完成一项非常简单的任务时遇到了很多困难。 我正在尝试在 node js 中设置 socket.io 客户端,然后它应该与 python 中的本地 socket.io 服务器设置通信(使用这里的 python 绑定。我遇到的问题是服务器正在检测客户端,但客户端似乎从未收到“连接”事件。我怀疑这是我异步部署服务器的方式的问题,但我真的不确定。每个文件的代码如下:

服务器.py

import socketio
from aiohttp import web

HOST = '127.0.0.1'
PORT = 10001

# create a Socket.IO server
sio = socketio.AsyncServer(async_mode='aiohttp', logger=True, engineio_logger=True)

app = web.Application()
sio.attach(app)

@sio.on('connect')
def connect(sid, environ):
    print('connect ', sid)

if __name__ == '__main__':
    web.run_app(app, host=HOST, port=PORT)

客户端.js

const io = require('socket.io-client');

const HOST = '127.0.0.1';
const PORT = '10001';

const socket = io(`http://${HOST}:${PORT}`);
console.log('Socket instantiated!');

socket.on('connect', () => {
    console.log(`socket connected: ${socket.connected}`);
});

我期望的输出是看到服务器打印出客户端已连接,然后客户端打印出它也已连接。 但是,客户端似乎永远不会收到“connect”事件,因此永远不会向控制台打印任何内容。

最后,服务器输出的一个例子是:

Server initialized for aiohttp.
======== Running on http://127.0.0.1:10001 ========
(Press CTRL+C to quit)
1c17586e4c7e49b48abefea2fba460e6: Sending packet OPEN data {'sid': '1c17586e4c7e49b48abefea2fba460e6', 'upgrades': ['websocket'], 'pingTimeout': 60000, 'pingInterval': 25000}
connect  1c17586e4c7e49b48abefea2fba460e6
1c17586e4c7e49b48abefea2fba460e6: Sending packet MESSAGE data 0

虽然客户端的输出很烦人

$ node mySocket.js
Socket instantiated!

然后它就挂了,什么也不做。

我显然在这里误解了一些东西,所以提前谢谢你!

小更新

我使用 python socketio 客户端快速测试,并成功获得了实际连接,因此这应该将其缩小到我在 JS 客户端中完成的操作。

好吧,我最终从 socket.io-client 3.00(三天前没有看到这个主要版本)降级到 2.3.1,一切又开始工作了! 但是,基于Github上没有列出的问题,我猜这不是影响每个人的错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM