6caa77d05c
urls are bytes on py3 |
||
---|---|---|
.. | ||
asyncio | ||
router | ||
twisted | ||
asciinema-autobahn-demo.py | ||
index.html | ||
Makefile | ||
README.md | ||
run-all-examples.py | ||
running-the-examples.md |
Autobahn|Python Examples
This folder contains complete working code examples that demonstrate various features of Autobahn|Python:
- Twisted-based Examples
If you are new to Autobahn and WAMP, you should start with the following if you're going to use Twisted:
- twisted/wamp/pubsub/basic/
- twisted/wamp/rpc/arguments/
...whereas if you prefer asyncio:
- asyncio/wamp/pubsub/basic/
- asyncio/wamp/rpc/arguments/
Note that many of the examples use the same URIs for topics or RPC endpoints, so you can mix and match which backend
or frontend
script (whether Python or JavaScript) you use. For example, a Web browser tab could load a backend.html
page that does publishes while you run a Python frontend.py
that subscribes to those topics.
Set up locally to run the examples.
Python 3
All the examples are now using modern Python 3.5+ syntax (await
and async def
).
However, everything works fine with earlier syntax (yield from
and @asyncio.coroutine
) or with Python 2 and the "trollius" library. To use an example with older syntax, you'll have to change any await
to yield from
(or just yield
for trollius) and change any async def
to a plain def
with the @asyncio.coroutine
decorator.
To use trollius, additionally change import asyncio
to import trollius as asyncio
For Twisted users, everything will work with Python 2.7 or Python 3 without changes.