使用Python的serve()函数创建一个基于WebSocket的实时通信服务器
发布时间:2024-01-20 09:42:36
Python中的WebSocket库如websockets可用于创建基于WebSocket的实时通信服务器。这个库提供了用于创建WebSocket服务器的函数serve(),使得服务器能够监听客户端连接并处理来自客户端的消息。
以下是使用Python的serve()函数创建一个基于WebSocket的实时通信服务器的示例代码:
import asyncio
import websockets
async def echo(websocket, path):
async for message in websocket:
await websocket.send(message)
start_server = websockets.serve(echo, "localhost", 8765)
asyncio.get_event_loop().run_until_complete(start_server)
asyncio.get_event_loop().run_forever()
此代码创建了一个简单的WebSocket服务器,它接受来自客户端的消息并将其发送回客户端。serve()函数接受两个参数:一个处理来自客户端请求的函数和服务器的主机和端口号。在这个例子中,echo函数用于处理来自客户端的消息,将消息原封不动地发送回客户端。服务器在本地主机上监听8765端口。
要运行这个服务器,可以将代码保存到一个名为server.py的文件中,并在终端中输入以下命令:
python server.py
服务器将在本地主机的8765端口上运行,并开始监听客户端连接。
要连接到这个服务器,可以使用Python的WebSocket库如websockets提供的WebSocket客户端实现。以下是一个简单的客户端示例代码:
import asyncio
import websockets
async def echo():
async with websockets.connect("ws://localhost:8765") as websocket:
while True:
message = input("Enter a message: ")
await websocket.send(message)
response = await websocket.recv()
print(f"Received: {response}")
asyncio.get_event_loop().run_until_complete(echo())
此代码创建了一个WebSocket客户端,它连接到本地主机上运行的服务器,并发送用户输入到服务器。它等待服务器返回的响应,并将其打印到终端。
要运行这个客户端,可以将代码保存到一个名为client.py的文件中,并在终端中输入以下命令:
python client.py
客户端将提示您输入一条消息,并将其发送到服务器。服务器将接收消息并将其原样发送回客户端,客户端将接收并打印服务器返回的消息。这样,实现了一个简单的基于WebSocket的实时通信服务器。
