Protokół WAMP

WAMP to otwarty podprotokół WebSocket oferujący dwa asynchroniczne wzorce przesyłania wiadomości: RPC i PubSub.

 

Technicznie WAMP jest oficjalnie zarejestrowanym subprotokołem WebSocket (działającym na wierzchu WebSocket), który używa JSON jako formatu serializacji wiadomości.

 

Czym jest RPC?

 

Remote Procedure Call (RPC) to wzorzec przesyłania wiadomości obejmujący uczestników pełniących dwie role: klient i serwer.

Serwer udostępnia metody lub procedury do wywołania pod dobrze znanymi punktami końcowymi.

Klient wywołuje zdalne metody lub procedury, podając punkt końcowy metody lub procedury oraz wszelkie argumenty wywołania.

Serwer wykona metodę lub procedurę z użyciem dostarczonych argumentów wywołania i zwróci wynik do klienta.

 

Co to jest PubSub?

 

Publish & Subscribe (PubSub) to wzorzec przesyłania wiadomości obejmujący peerów w trzech rolach: wydawcy, subskrybenta i brokera.

Wydawca wysyła (publikuje) zdarzenie, podając temat (znany też jako kanał) jako abstrakcyjny adres, nie konkretnego odbiorcę.

Subskrybent odbiera zdarzenia, podając najpierw tematy (czyli kanały), którymi jest zainteresowany. Następnie subskrybent będzie otrzymywał wszelkie zdarzenia opublikowane w danym temacie.

Broker działa między wydawcami a subskrybentami i pośredniczy w dostarczaniu wiadomości subskrybentom. Broker utrzymuje listy subskrybentów dla każdego tematu, dzięki czemu może przekazywać nowo opublikowane zdarzenia do odpowiednich subskrybentów.

Broker może również samodzielnie wysyłać zdarzenia, na przykład gdy broker pełni również rolę serwera RPC, a metoda wykonana na serwerze powinna wyzwolić zdarzenie PubSub.

Podsumowując, PubSub odsprzęga wydawców od odbiorców za pośrednictwem pośrednika, jakim jest broker.

 

 

Komponenty

TsgcWSPServer_WAMP: Składnik VCL protokołu WAMP po stronie serwera.

 

TsgcWSPClient_WAMP: Komponent VCL protokołu klienta WAMP.

 

Komponent Javascript: Dokumentacja klienta Javascript.

 

 

Najczęstsze zastosowania

 

Test w przeglądarce

Aby przetestować ten protokół przy użyciu ulubionej przeglądarki internetowej, należy wpisać następujący adres URL (wymagane jest zdefiniowanie niestandardowego hosta i portu)

 

http://host:port/wamp.esegece.com.html