Jak wdrożyć WebSocket w Python

Jak wdrożyć WebSocket w Python

WebSocket to protokół warstwy aplikacji, który umożliwia dwukierunkową komunikację między klientem a serwerem. Protokół WebSocket działa najpierw, tworząc uścisk dłoni, a następnie komunikat zaimplementowany przez TCP, a nie podstawowy HTTP.

WebSockets a inne podobne technologie, takie jak SSE (zdarzenia Server-Sent) i WebRTC, są pomocne w aplikacjach, w których serwer musi zachować otwarte połączenie z podłączonymi klientami. Doskonałym przykładem WebSockets używanych w aplikacjach jest aplikacja do czatu, gry wieloosobowe online i narzędzia w czasie rzeczywistym, takie jak narzędzia analizy i współpracy.

WebSockets Zapewnia nam pełny, dwukierunkowy połączenie między serwerem a podłączonymi klientami w Internecie. Oznacza to, że zarówno serwer, jak i klient mogą pchać dane po ustalonym połączeniu.

W tym samouczku nie zanurzam głęboko w tym, jak WebSockets praca. Zamiast tego pokażę ci, jak użyć Pythona do wdrożenia prostej aplikacji za pomocą WebSocket.

Jeśli chcesz dowiedzieć się więcej o HTTP, WebSocket i SSES, Sprawdź inne samouczki na tej stronie, wyjaśniając ich różnice.

NOTATKA: Zanim zaczniemy, zakładamy, że znasz podstawowe koncepcje sieciowe, takie jak żądania HTTP i HTTP. Aby wdrożyć pojęcia w tym samouczku z pewną łatwością, musisz mieć podstawową wiedzę na temat programowania Pythona i JavaScript.

Krok 1: Konfiguracja środowiska

Zacznijmy wdrażać prosty serwer WebSocket, aby używać przeglądarki jako klienta do połączenia z serwerem.

Należy zauważyć, że celem tej implementacji nie jest zbudowanie ogromnej aplikacji, ale zapewnienie podstawowego zrozumienia, w jaki sposób możesz używać Python i JavaScript do tworzenia aplikacji WebSocket.

W tym celu będziemy musieli zainstalować Pythona, najlepiej Python 3.6+.

Będziemy również używać WebSocket pakiet.

https: // WebSockets.ReadThedocs.IO/en/Stable/indeks.html

Po zainstalowaniu Pythona użyj PIP, aby zainstalować pakiet WebSocket za pomocą poniższego polecenia:

PIP Instaluj WebSockets

Gdy masz WebSockets Zainstalowany pakiet możemy zacząć tworzyć serwer i klient do połączenia.

Krok 2: Tworzenie serwera

Zacznij od utworzenia katalogu, w którym będziemy służyć aplikacji WebSocket.

W katalogu utwórz plik i nazywaj go serwerem.py

Wewnątrz serwera.plik PY, dodaj następujące wiersze kodu, które implementują prosty serwer na / URL.

Import Asyncio
importować WebSockets
# Utwórz obsługę dla każdego połączenia
Async Def Handler (WebSocket, ścieżka):
Data = czekaj na WebSocket.recv ()
Odpowiedz = f "Dane otrzymane jako: data!"
czekaj na WebSocket.Wyślij odpowiedź)
start_server = WebSockets.Serve (Handler, „LocalHost”, 8000)
Asyncio.get_event_loop ().run_until_complete (start_server)
Asyncio.get_event_loop ().run_forever ()

W pliku serwera importujemy wymagane pakiety w tym przypadku, Asyncio, I WebSockets.

Następnie tworzymy przewodnika, który przyjmuje argumenty WebSocket i ścieżka. WebSocket reprezentuje adres URL serwera (LocalHost: 8000). Ścieżka to URI dla przewodnika w naszej sprawie, URI to /.

Następnie czekamy na połączenie przychodzące i wiadomość. Wraz z otrzymanymi danymi wdrażamy działanie. W naszym przypadku prosta odpowiedź z zawartością otrzymanych danych.

Krok 3: Tworzenie klienta

Spróbujmy teraz zaimplementować prostego klienta do połączenia z serwerem. Użyjemy konsoli przeglądarki jako klienta, aby zachować prostotę samouczka.

Utwórz plik i nazwij go klientem.html. Wewnątrz pliku dodaj następujący kod:







Klient WebSocker





Zapisz plik i otwórz go w przeglądarce.

Aby sprawdzić, czy połączenie działa, kliknij przycisk i sprawdź konsolę dla odpowiedzi serwera.

Po kliknięciu przycisku wiadomość jest wysyłana do serwera. Serwer następnie odpowiada zawartością wiadomości, co wskazuje, że połączenie jest ustanowione.

Wniosek

W tym samouczku widzieliśmy, jak korzystać z Python WebSockets pakiet w celu wdrożenia prostego WebSocket połączenie.