Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在python中配置websocket服务器_Javascript_Python_Websocket - Fatal编程技术网

Javascript 在python中配置websocket服务器

Javascript 在python中配置websocket服务器,javascript,python,websocket,Javascript,Python,Websocket,因此,我试图用python配置websocket服务器,但无法完全解决问题,因为我遇到了一堆相互矛盾的帖子(稍后将提供)。 这是服务器的代码:(我将使用--.--作为IP) 这篇文章建议的这段代码:说我必须作为主机输入我的IP地址。现在我知道这可能是我的调制解调器的IP地址,但在本例中,我启动了一个AWS实例来解决问题。在这种情况下,我得到了错误: OSError: [Errno 10049] error while attempting to bind on address ('--.--.-

因此,我试图用python配置websocket服务器,但无法完全解决问题,因为我遇到了一堆相互矛盾的帖子(稍后将提供)。 这是服务器的代码:(我将使用--.--作为IP)

这篇文章建议的这段代码:说我必须作为主机输入我的IP地址。现在我知道这可能是我的调制解调器的IP地址,但在本例中,我启动了一个AWS实例来解决问题。在这种情况下,我得到了错误:

OSError: [Errno 10049] error while attempting to bind on address ('--.--.---.---', 5500): the requested address is not valid in its context
我以为这是管理员权限,从提升的命令提示符运行,在防火墙中制定了规则,但没有用

然后我看到了这篇帖子:上面说我不应该输入IP地址。所以我没有这样做——这次代码运行,但我无法通过html/js上的websocket客户端进行连接。它们的代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="controller.js"></script>
</body>
</html>
在这种情况下,客户端(在chrome中)会说:

编辑1:尝试了此解决方案,但未成功


编辑2:确认客户端存在一些问题-端口正在netstat上侦听

好的,我已经解决了。问题不在于代码,至少不完全是这样。python侦听器要绑定的IP应该是“0.0.0.0”或“”。更重要的是,在AWS/Papespace/Linode中,选择一个静态IP。这是非常明显的,但我错过了它,因为我认为我们在默认情况下得到了静态IP(该死的linode,因为这个坏习惯)。此外,根据您的提供商,AWS需要您在其门户中提供端口。(附截图)

除了内部计算机防火墙之外,还需要执行以下AWS防火墙

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="controller.js"></script>
</body>
</html>
const socket = new WebSocket('ws://--.--.---.---:5500/');

socket.addEventListener('open', function (event) {
    console.log("this is running");
    socket.send('Hello Server!');
});
controller.js:1 WebSocket connection to 'ws://--.--.---.---:5500/' failed: 
import asyncio
import websockets

Host = "0.0.0.0"
SocketPort = 5500

async def WebSocketserver(websocket, path):
    Rxdata = await websocket.recv()
    print(f" Received data : {Rxdata}")
    await websocket.send("200")
    

start_server = websockets.serve(WebSocketserver, Host, SocketPort)

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