Java脚本websocket无法使用公共ip连接到python serveur

问题描述 投票:0回答:1

所以这是js中的客户端

<!DOCTYPE html>
<html>
<head>
    <title>WebSocket demo</title>
</head>
<body>
    <script>
        var ws = new WebSocket("ws://trillion.ddns.net:5678/"),
        messages = document.createElement('ul');
        ws.onmessage = function (event) {
        var messages = document.getElementsByTagName('ul')[0],
        message = document.createElement('li'),
        content = document.createTextNode(event.data);
        message.appendChild(content);
        messages.appendChild(message);
        };
        document.body.appendChild(messages);
    </script>
</body>
</html>

这是一个连接并接收后的简单代码,但是即使当我使用公共ip时它可以与本地ip一起使用,也无法使用

这是服务端

import asyncio
import datetime
import random
import websockets

async def time(websocket, path):
    while True:
        now = datetime.datetime.utcnow().isoformat() + "Z"
        await websocket.send(now)
        await asyncio.sleep(random.random() * 3)

start_server = websockets.serve(time, "", 5678)

asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()  
javascript python networking websocket portforwarding
1个回答
0
投票
start_server = websockets.serve(time, "", 5678)

告诉它只能在127.0.0.1上使用(或localhost ...),这对于远程访问将不起作用

而不是使用0.0.0.0绑定到所有可用接口

start_server = websockets.serve(time, "0.0.0.0", 5678)
© www.soinside.com 2019 - 2024. All rights reserved.