Enviando e recebendo mensagens via WebSocket in Python

WebSocket A comunicação permite enviar e receber mensagens em tempo real entre um servidor e clientes. Aqui está um guia detalhado sobre como conseguir isso usando Python a websockets biblioteca.

Etapa 1: instalar a WebSocket biblioteca

Primeiro, instale a websockets biblioteca executando o seguinte comando no terminal:

pip install websockets

Etapa 2: Enviando e recebendo mensagens no servidor

Abaixo está um exemplo de como enviar e receber mensagens em um WebSocket servidor:

import asyncio  
import websockets  
  
# WebSocket connection handling function  
async def handle_connection(websocket, path):  
    async for message in websocket:  
        await websocket.send(f"Server received: {message}")  
  
# Initialize the WebSocket server  
start_server = websockets.serve(handle_connection, "localhost", 8765)  
  
# Run the server within the event loop  
asyncio.get_event_loop().run_until_complete(start_server)  
asyncio.get_event_loop().run_forever()  

No trecho de código:

  • async def handle_connection(websocket, path):: Esta função lida com WebSocket conexões. Quando um cliente envia uma mensagem, esta função escuta e envia uma resposta de volta.

  • async for message in websocket:: Este loop escuta as mensagens do cliente por meio da WebSocket conexão.

  • await websocket.send(f"Server received: {message}"): Esta função envia uma resposta do servidor de volta ao cliente por meio da WebSocket conexão.

Etapa 3: Enviando e recebendo mensagens do cliente

Veja um exemplo de como o cliente envia e recebe mensagens do WebSocket servidor:

import asyncio  
import websockets  
  
async def send_and_receive():  
    async with websockets.connect("ws://localhost:8765") as websocket:  
        await websocket.send("Hello, WebSocket!")  
        response = await websocket.recv()  
        print("Received:", response)  
  
asyncio.get_event_loop().run_until_complete(send_and_receive())  

No trecho de código:

  • async with websockets.connect("ws://localhost:8765") as websocket:: é assim que o cliente se conecta ao WebSocket servidor. O cliente estabelece uma conexão com o localhost endereço e a porta 8765.

  • await websocket.send("Hello, WebSocket!"): O cliente envia a mensagem  para o servidor. Hello, WebSocket!

  • response = await websocket.recv(): O cliente espera receber uma resposta do servidor via WebSocket conexão.

Conclusão

Seguindo as etapas e entendendo cada parte do exemplo, você aprendeu com sucesso como enviar e receber mensagens WebSocket via Python. Isso abre possibilidades para a criação de aplicações em tempo real e troca contínua de dados entre servidor e clientes.