【问题标题】:Websocket between python server and javascript clientpython服务器和javascript客户端之间的Websocket
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 我记得,远程 PC 之间的连接也需要在启动 python 服务器时使用“127.0.0.1”而不是“localhost”
  • @AlexPredescu 127.0.0.1 在远程 PC 之间也不起作用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-12
相关资源
最近更新 更多