An open API service indexing awesome lists of open source software.

https://github.com/varun93/wamp-playground

Repository to explore WAMP using autobahn
https://github.com/varun93/wamp-playground

autobahn python wamp wamp-protocol websockets

Last synced: 2 months ago
JSON representation

Repository to explore WAMP using autobahn

Awesome Lists containing this project

README

        

# Exploring Web Application Messaging Protocol
Repository to explore the power of [WAMP](https://wamp-proto.org/) using [autobahn](https://crossbar.io/autobahn/).

While struggling to understand the need for WAMP's I stumbled upon [this](https://blog.eduonix.com/web-programming-tutorials/web-application-messaging-protocol/) resource which provides a good inuition for the need for the protocol.
[This](https://crossbario.com/blog/Free-Your-Code-Backends-in-the-Browser/) was quite informative too.

We needed to implement a real time communication channel in one of our projects, Websockets was the obvious choice. But websockets operate at a low level, and WAMP offers traditional RPC style communication and Publish Subcribe model of communication with a unified interface which is quite impressive. So all the components in a system can be treated as symmetric. In our case this meant that the RPC abstraction provided by WAMP could enable our Server(in traditional sense) code invoke a client procedure which was not possible in the traditonal RPC.

## Installation
``` pip install -r requirements.txt ```

WAMP is built on top of websockets, so it helps to have a reasonable understanding of websockets. Have included a few example programs of the same. The examples **are not my own**, I have taken them from the [official repository](https://github.com/crossbario/autobahn-python/).

Since it involves a fair bit of event driven programming paradigm, I have included a couple of examples of using [Twisted](https://twistedmatrix.com/trac/) also taken from [here](https://autobahn.readthedocs.io/) which demonstrates the usage of Deferred and inlineCallbacks.

```wamp``` would contain examples of using wamp.