首页 > 解决方案 > python服务器和javascript客户端之间的Websocket

问题描述

我对 Web 开发非常陌生,因此有关以下事项的任何提示都会很有用!因此,用javascript编写的客户端应该与用python编写的服务器进行通信。我正在尝试在运行 UBUNTU 和 Windows 操作系统的两台 PC 之间建立 websocket 连接,当我使用 UBUNTU 和 localhost 运行它们时,它们工作得非常好。此外,当服务器在 UBUNTU 中并且客户端在 Windows 中时,一切正常。仅当服务器位于 Windows 中且客户端位于 UBUNTU 中时,我才会一直遇到相同的错误。'连接建立错误:net::ERR_CONNECTION_TIMED_OUT。

我尝试在 Windows 中关闭防火墙设置,但它不起作用。

任何输入将不胜感激!

蟒蛇服务器

import asyncio
import websockets

async def hello(websocket, path):
    name = await websocket.recv()
    print(f"< {name}")

    greeting = f"Hello {name}!"

    await websocket.send(greeting)
    print(f"> {greeting}")

start_server = websockets.serve(hello, "localhost", 8765)

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

Javascript 客户端

var ws = new WebSocket("ws://localhost:1337/");

ws.onopen = function(){
    console.log("Connection is Established");
    ws.send("Message to Send");
};

ws.onmessage = function(evt) {
    var received_msg = evt.data;
    console.log(received_msg);
};

标签: javascriptpythondjangowebsocketubuntu-16.04

解决方案


好的,我发现了问题所在。完全忘记了我必须更改我的路由器设置以进行端口转发。


推荐阅读