python如何使用websocket和html页面通信

426 阅读1分钟

要在Python和HTML页面之间进行WebSocket通信,你需要使用Python中的WebSocket服务器和在HTML页面中使用JavaScript来实现。

在Python端,你可以使用websockets库来创建WebSocket服务器。首先,确保已经安装了websockets库:

pip install websockets

下面是一个在Python中创建WebSocket服务器的示例代码:

import asyncio
import websockets

# 处理WebSocket连接的函数
async def handle_websocket(websocket, path):
    # 接收消息
    message = await websocket.recv()
    print(f"Received message: {message}")

    # 发送消息
    response = "Hello from WebSocket server"
    await websocket.send(response)

# 创建WebSocket服务器
start_server = websockets.serve(handle_websocket, "localhost", 8765)

# 运行服务器
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()

在上述代码中,WebSocket服务器在本地主机的端口8765上运行,并且在接收到消息后,会发送回一个"Hello from WebSocket server"的回复。

在HTML页面中,你可以使用JavaScript来与WebSocket服务器进行通信。下面是一个在HTML页面上使用JavaScript实现WebSocket通信的示例代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <script>
        var socket = new WebSocket("ws://localhost:8765");

        // 连接建立后触发的事件
        socket.onopen = function(event) {
            console.log("WebSocket connected");

            // 发送消息
            socket.send("Hello from HTML page");
        };

        // 收到消息后触发的事件
        socket.onmessage = function(event) {
            console.log("Received message: " + event.data);
        };

        // 连接关闭后触发的事件
        socket.onclose = function(event) {
            console.log("WebSocket closed");
        };
    </script>
</head>
<body>
</body>
</html>

在上述代码中,通过WebSocket对象的onopenonmessageonclose事件处理函数,可以处理连接建立、收到消息和连接关闭的事件。

注意在代码中指定的WebSocket地址应与Python中的WebSocket服务器地址和端口相匹配。

使用上述代码示例,Python的WebSocket服务器和HTML页面之间将能建立起通信,可以相互发送和接收消息。你可以根据具体需求在代码中进行适当的调整。