【发布时间】:2020-08-11 01:50:21
【问题描述】:
我对 Web 开发非常陌生,因此有关以下问题的任何提示都会很有用! 因此,用javascript编写的客户端应该与用python编写的服务器进行通信。我正在尝试在运行 UBUNTU 和 Windows 操作系统的两台 PC 之间建立 websocket 连接 当我使用 UBUNTU 和 localhost 运行它们时,它们工作得非常好。 此外,当服务器在 UBUNTU 中而客户端在 Windows 中时,一切正常。 只有当服务器位于 Windows 中并且客户端位于 UBUNTU 中时,我才会一直遇到相同的错误。 '连接建立错误:net::ERR_CONNECTION_TIMED_OUT.
我尝试在 Windows 中关闭防火墙设置,但没有成功。
我们将不胜感激!
Python 服务器
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);
};
【问题讨论】:
-
您尝试清除 cookie 吗?只是一个想法
-
感谢您的提示,但不幸的是,这不起作用。我认为这可能与 UBUNTU 处理传出 websocket 的方式有关。我从树莓派运行服务器代码,但 UBUNTU 客户端仍然无法连接。
标签: javascript python django websocket ubuntu-16.04