如何在Python中实现WebSocket(详细例子)

WebSocket是一种应用层协议,允许客户端和服务器之间进行双向通信。WebSocket 协议首先通过创建握手然后通过 TCP 而不是基本 HTTP 实现的消息帧来工作。WebSockets和其他类似技术,如 SSE(服务器发送事件)和 WebRTC,在服务器需要与连接的客户端保持开放连接的应用程序中很有帮助。在应用程序中使用 WebSockets 的一个很好的例子是聊天应用程序、在线多人游戏和实时工具,如分析和协作工具,那么如何在Python中实现WebSocket?WebSockets为我们提供了服务器和连接的客户端之间的全双工双向连接。这意味着一旦建立连接,服务器和客户端都可以推送数据。如何实现WebSocket?在本教程中,我不会深入探讨WebSockets 的工作原理。相反,我将向你展示如何使用 Python 来实现使用 WebSocket 的简单应用程序。如果你想了解有关HTTP、WebSocket 和 SSE 的更多信息,请查看此站点上解释它们差异的其他教程。注意:在开始之前,我们假设你熟悉基本的网络概念,例如 HTTP 和 HTTP 请求。要轻松实现这个Python WebSocket教程中的概念,你需要具备基本的 Python 和 JavaScript 编程知识。第 1 步:环境设置让我们开始实现一个简单的 WebSocket 服务器,使用浏览器作为客户端连接到服务器。如何在Python中实现WebSocket?值得注意的是,这个实现的目的不是构建一个庞大的应用程序,而是让你对如何使用 python 和 JavaScript 来创建 WebSocket 应用程序有一个基本的了解。为此,我们需要安装 Python,最好是 Python 3.6+。我们还将使用WebSocket包。https://websockets.readthedocs.io/en/stable/index.html安装 Python 后,使用 pip 使用以下命令安装 WebSocket 包:

pip install websockets

一旦你安装了WebSockets包,我们就可以开始创建服务器和客户端来连接。第 2 步:创建服务器首先创建一个目录,我们将在其中为应用程序提供服务——称之为WebSocket。在目录中,创建一个文件,并将其命名为 server.pyPython实现WebSocket例子:在 server.py 文件中,添加以下代码行,在 / URL 上实现一个简单的服务器。
import asyncioimport websockets# create handler for each connectionasync def handler(websocket, path):data = https://www.lsbin.com/await websocket.recv()reply = f"Data recieved as:{data}!"await websocket.send(reply) start_server = websockets.serve(handler, "localhost", 8000) asyncio.get_event_loop().run_until_complete(start_server)asyncio.get_event_loop().run_forever()

在服务器文件中,我们导入所需的包 - 在本例中为asyncIO和WebSockets。接下来,我们创建一个处理程序,它接受参数WebSocket和路径。该WebSocket的表示服务器(本地主机:8000)的URL。路径是处理程序的 URI——在我们的例子中,URI 是 /。然后我们继续等待传入的连接和消息。使用收到的数据,我们执行一个操作。在我们的例子中,是一个带有接收数据内容的简单响应。第 3 步:如何实现WebSocket?创建客户端如何在Python中实现WebSocket?现在让我们尝试实现一个简单的客户端来连接到服务器。我们将使用浏览器控制台作为客户端以保持本教程的简单性。创建一个文件并将其命名为 client.html。在文件中,添加以下代码,如下Python实现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>WebSocker Client< /title>< /head>< body>< button onclick="contactServer">Click Here< /button>< /body>< script>const socket = new WebSocket('ws://localhost:8000'); socket.addEventListener('open', function (event) {socket.send('Connection Established'); }); socket.addEventListener('message', function (event) {console.log(event.data); }); const contactServer = () => {socket.send("Initialize"); }< /script>< /html>

保存文件并在浏览器中打开它。要测试连接是否有效,请单击按钮并检查控制台以获取服务器响应。
如何在Python中实现WebSocket(详细例子)

文章图片
单击该按钮后,将向服务器发送一条消息。然后服务器以消息的内容进行响应,从而表明连接已建立。Python WebSocket教程结论在本教程中,我们看到了如何使用Python WebSockets包来实现简单的WebSocket连接。

    推荐阅读