Como implementar um websocket em python

Como implementar um websocket em python

WebSocket é um protocolo de camada de aplicativo que permite a comunicação bidirecional entre um cliente e um servidor. O WebSocket Protocol funciona primeiro criando um aperto de mão e depois uma mensagem enquadrando implementada sobre o TCP em vez de http básico.

WebSockets E outras tecnologias semelhantes, como SSE (Eventos de Sentir Servidor) e WebRTC, são úteis em aplicativos em que o servidor precisa manter uma conexão aberta com os clientes conectados. Um excelente exemplo de websockets usados ​​em aplicativos é um aplicativo de bate-papo, jogos multiplayer online e ferramentas em tempo real, como análises e ferramentas de colaboração.

WebSockets Fornece-nos uma conexão bidirecional de duplex completa entre o servidor e os clientes conectados pela Web. Isso significa que o servidor e o cliente podem pressionar os dados assim que houver uma conexão estabelecida.

Neste tutorial, não vou mergulhar profundamente em como WebSockets trabalhar. Em vez disso, mostrarei como você pode usar o Python para implementar um aplicativo simples usando WebSocket.

Se você deseja aprender mais sobre HTTP, WebSocket e SSEs, Confira os outros tutoriais deste site explicando suas diferenças.

OBSERVAÇÃO: Antes de começarmos, assumimos que você está familiarizado com os conceitos básicos de rede, como solicitações HTTP e HTTP. Para implementar os conceitos neste tutorial com um grau de facilidade, você precisa ter conhecimento básico de programação Python e JavaScript.

Etapa 1: configuração do ambiente

Vamos começar a implementar um servidor WebSocket simples para usar o navegador como o cliente para conectar -se ao servidor.

É bom observar que o objetivo desta implementação não é criar uma aplicação maciça, mas fornecer uma compreensão básica de como você pode usar o Python e o JavaScript para criar aplicativos do WebSocket.

Para isso, precisaremos instalar o Python, de preferência Python 3.6+.

Também usaremos o WebSocket pacote.

https: // websockets.ReadThEdocs.io/pt/estável/índice.html

Depois de instalar o Python, use o PIP para instalar o pacote websocket usando o comando abaixo:

pip install websockets

Depois de ter o WebSockets Pacote instalado, podemos começar a criar o servidor e um cliente para conectar.

Etapa 2: Criando o servidor

Comece criando um diretório onde vamos servir o aplicativo-chamá-lo WebSocket.

Dentro do diretório, crie um arquivo e chame de servidor.py

Dentro do servidor.arquivo py, adicione as seguintes linhas de código que implementam um servidor simples no / url.

importar asyncio
importar websockets
# Crie manipulador para cada conexão
Async Def Handler (WebSocket, Path):
dados = aguarda webSocket.recv ()
Responder = f "Dados recebidos como: data!"
Aguarde WebSocket.enviar (resposta)
start_server = websockets.servir (manipulador, "localhost", 8000)
ASYNCIO.get_event_loop ().run_until_complete (start_server)
ASYNCIO.get_event_loop ().run_forever ()

Dentro do arquivo do servidor, importamos os pacotes necessários neste caso, ASYNCIO, e WebSockets.

Em seguida, criamos um manipulador que leva os argumentos WebSocket e caminho. O WebSocket Representa o URL do servidor (localhost: 8000). O caminho é o URI para o manipulador no nosso caso, o URI é /.

Em seguida, continuamos a esperar pela conexão de entrada e pela mensagem. Com os dados recebidos, implementamos uma ação. No nosso caso, uma resposta simples com o conteúdo dos dados recebidos.

Etapa 3: Criando um cliente

Vamos agora tentar implementar um cliente simples para conectar -se ao servidor. Usaremos o console do navegador como cliente para preservar a simplicidade do tutorial.

Crie um arquivo e ligue para o cliente.html. Dentro do arquivo, adicione o seguinte código:







Cliente Websocker





Salve o arquivo e abra -o no navegador.

Para testar se a conexão está funcionando, clique no botão e verifique o console para a resposta do servidor.

Depois de clicar no botão, uma mensagem é enviada para o servidor. O servidor responde então com o conteúdo da mensagem, indicando assim que a conexão é estabelecida.

Conclusão

Para este tutorial, vimos como usar o Python Websockets pacote para implementar um simples WebSocket conexão.