【发布时间】:2021-10-27 00:30:48
【问题描述】:
我想在 websocket 服务器的 URL 末尾添加一个路径,但它不起作用。
例如ws://111.111.11.111:8080/websocket。
我想在这样的端口号之后添加 URL 路径/websocket。我该怎么做?
- 首先我在客户端测试了
ws://111.111.11.111:8080/websocket。 - 其次,将 URL 更改为
ws://111.111.11.111:8080。
结果是都连接到服务器。并显示相同的输出。为什么?不能只在指定/websocket路径的情况下连接吗?我该怎么办?
服务器端代码
import websockets
async def web_server(websocket, path):
while True:
publish_to_client = json.dumps(sub.status)
await websocket.send(publish_to_client)
await asyncio.sleep(0.1)
if __name__ == "__main__":
start_server = websockets.serve(web_server, "111.111.11.111", 8080)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
客户端代码 -> 显示网页
<!DOCTYPE html>
<html>
<head>
<title>WebSocket demo</title>
</head>
<body>
<script>
var ws = new WebSocket("ws://111.111.11.111:8080/websocket"),
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>
【问题讨论】:
标签: python websocket path endpoint serve