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.
pip install socker$ 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 screenTo 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.
- 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 to
- https://github.com/aaugustin/websockets
 - https://github.com/jonathanslenders/asyncio-redis
 
for their brilliant asyncio packages.