GitHub - 5monkeys/socker: Redis pub/sub websocket proxy server, built on asyncio
socker runs as a single-process service, using asyncio for non-blocking I/O.
socker uses a single redis pubsub channel, and has its own channel subscription logic, this means that you may share redis database with other applications.
socker runs as a single-process service. socker opens up a websocket server port and establishes a redis connection. The redis connection creates a subscription on the socker channel.
Installation
Usage
$ socker -h Start the socker websocket server Usage: socker [options] socker -? | --help socker --version Options: -i INTERFACE Listening interface [default: localhost] -p PORT Listening port [default: 8765] -v Enable verbose output --redis-host=HOST Redis host [default: localhost] --redis-port=PORT Redis port [default: 6379] --redis-db=DB Redis database [default: 0] --redis-password=PASSWORD Redis password --logto FILE Log output to FILE instead of console --version show version -? --help Show this screen
To publish a message to socker from another application:
from socker import Message channel = 'foo.bar.42' data = { 'yes': [ 'yes', 'no', 'baz' ] } redis_client.publish('socker', Message(channel, data))
Any websocket clients subscribed to
foo.*foo.bar.*foo.bar.42
will receive that message.
Releasing a new version to PyPi
- Bump the version in
VERSION. - Commit the change and tag it with the new version identifier.
- Build a source distribution:
python setup.py sdist. - Build a wheel:
python setup.py bdist_wheel. - Upload the built distribution using Twine:
twine upload dist/*.
Thanks
Thanks to
for their brilliant asyncio packages.