The WebSocket protokół (WS) zapewnia możliwość wymiany danych pomiędzy przeglądarką internetową a serwerem za pomocą trwałego połączenia. Dane są przez niego przesyłane w obu kierunkach w postaci "pakietów", bez zrywania połączenia i dodatkowych HTTP żądań.
WebSocket jest szczególnie dobre dla usług, które wymagają stałej komunikacji, takich jak gry online, rynki w czasie rzeczywistym i tak dalej.
Przykład użycia
Przyjrzyjmy się tworzeniu i używaniu WebSocket w AppMaster na przykładzie prostego chatbota.
Po pierwsze, musisz stworzyć proces biznesowy w backendzie aplikacji (Backend > Business Processes ), który będzie odpowiadał na wiadomości od użytkownika i wysyłał coś w odpowiedzi, w zależności od otrzymanej wiadomości.
Ten BP odbiera wiadomość i w zależności od jej treści zwraca w odpowiedzi ciąg znaków.
- Jeżeli. message = "Hi!", to w odpowiedzi otrzymujemy komunikat o treści "Hello!";
- Jeśli. message = "How are you doing?", wówczas BP zwróci ciąg znaków "Great! How about you?";
- W każdym innym przypadku BP będzie działał jak echo i zwróci w odpowiedzi ten sam ciąg znaków, który otrzymał na wejściu.
Następnie należy utworzyć WebSocket Endpoint (przejdź do. Backend > Endpoints > New Endpoint > WebSocket Endpoint), aby ten BP komunikował się z naszym botem.
W nowo otwartym oknie wypełnij następujące pola:
- Endpoint Type: GET
- Endpoint Address
- Endpoint Group
- Business Process
Po skonfigurowaniu Endpoint należy opublikować aplikację, która będzie z niego korzystać (Publish).
WebSocket można przetestować za pomocą use Postman app(https://www.postman.com/). Szczegółową instrukcję, jak używać Postman można znaleźć pod linkiem: https://learning.postman.com/docs/sending-requests/supported-api-frameworks/websocket/.
W pierwszej kolejności należy utworzyć nowe WebSocket żądanie w Postman aplikacji (New > WebSocket Request).
Należałoby umieścić w nim pełny adres websocket. Można go uzyskać w Swagger (Preview > Development) poprzez wysłanie żądania na adres Endpoint który utworzyliśmy wcześniej w tym przewodniku. Zobaczysz adres websocket w Request URL sekcji.
Po skopiowaniu go i wklejeniu do odpowiedniego pola w Postmannależy zamienić https na wssponieważ komunikacja będzie odbywać się za pomocą wss protokół.
Następnie należy się zalogować, aby użyć WebSocket. Autoryzacja w websockets odbywa się poprzez Cookies. Można znaleźć Cookies w następujący sposób:
- W opublikowanej aplikacji naciśnij F12, aby otworzyć narzędzie deweloperskie;
- Przejdź do Networks i przełącz się na Headers zakładkę;
- W Request Headers zobaczysz Cookie wartość;
Poprzez dodanie Cookie do nagłówka żądania (Headers) do WebSocket w Postman i klikając na Connectmożna sprawdzić, czy połączenie z WS zostało pomyślnie nawiązane. Wynik udanego połączenia jest pokazany na poniższym przykładzie.
Możesz wysłać wiadomość w bloku New Message ale musi to być JSON-formatted. To znaczy, jeśli chcesz wysłać ciąg znaków "Hello!", to wiadomość będzie wyglądać tak: {"message" : "Hello!"}. W tym przypadku nazwa klucza (=. message w tym przypadku) musi odpowiadać nazwie zmiennej na wejściu BP.
Wynik wykonania tego zapytania w poniższym przykładzie: