Skip to content

Latest commit

 

History

History
102 lines (69 loc) · 2.37 KB

README.rst

File metadata and controls

102 lines (69 loc) · 2.37 KB

socker - pubsub 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

pip install socker

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

  1. Bump the version in VERSION.
  2. Commit the change and tag it with the new version identifier.
  3. Build a source distribution: python setup.py sdist.
  4. Build a wheel: python setup.py bdist_wheel.
  5. Upload the built distribution using Twine: twine upload dist/*.

Thanks

Thanks to

for their brilliant asyncio packages.