Python Websockets:在Linux上但在Windows上对localhost的连接调用失败

2024-04-26 02:34:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在运行一个PythonWebSocket线程服务器,该服务器具有发布者/订阅者体系结构,用于将数据发布到一组订阅客户端。整个系统运行在谷歌云平台上的Linux(Debian10)虚拟机上

发布者协同路由通过本地主机连接到websocket服务器。我使用了与documentation中提供的示例相同的代码:

uri = 'ws://127.0.0.1:' + str(self.port) + '/pub'
async with websockets.connect(uri) as websocket:
    await asyncio.gather(
        self.send_data(websocket, async_queue),
        self.ping(websocket, 30),
        self.tracker_handler(async_queue)
    )

我在自己的线程中运行这个。在我的Windows机器上运行此程序,工作正常,上面的协同程序连接正常,但是在Linux云VM上,我遇到以下错误:

ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 64000)

这发生在async with websockets.connect(uri) as websocket:行上

是什么原因导致了这种情况,因为它在我的Windows机器上运行良好,但在Linux上运行不正常?我尝试过一些显而易见的方法,比如重启虚拟机,在venv之外运行,更新软件包等等


Tags: self服务器机器asyncwebsocketsqueuelinuxwindows