Skip to content

elastic-coders/pushpull

Repository files navigation

Pushpull

A websocket to rabbitmq gateway

https://travis-ci.org/elastic-coders/pushpull.svg?branch=master

BETA

Makes it easy to talk to websocket clients using rabbitmq queues.

Websocket to message broker gateway for servers:

websocket client (browser) <---> pushpull gateway <----> message broker (rabbitmq) <---> your backend application
                                                                                     \
                                                                                      \-> the authenticator module

Includes some standard authenticator modules

Install

Requires python3.5+:

pip install pushpull

Test

  1. install a rabbitmq server and a mongodb server
  2. run tox

Usage

Run the websocket server:

pushpull-server

Run the CLI websocket client:

pushpull-client challenge_websocket http://localhost:8080/pushpull user_token

Run the CLI rabbitmq client:

pushpull-client challenge_amqp amqp://localhost/ user_id

Run the CLI rabbitmq authenticator:

pushpull-client authenticate_amqp amqp://localhost/ pushpull.auth.simple_file:main,user_db.txt

The user_db.txt is a text file with one entry per line:

user_id:username:user_token

Generating messages programmatically

To pass a message to a WebSocket client through RabbitMQ you can use pika Python module:

connection = pika.BlockingConnection()
channel = connection.channel()
channel.basic_publish(exchange='pushpull.ws',
                      # routing_key='pushpull.ws', # broadcast to all open WebSockets
                      routing_key=('pushpull.ws.%d' % user_id),
                      body='{"test": "Test"}')
connection.close()

Build docker image

install wheel:

pip install wheel

Build wheels for 3rd party and the project itself:

pip wheel -r requirements.txt -w wheelhouse
pip wheel . --no-deps -w wheelhouse-app
docker build -t pushpull .

About

Websocket to rabbitmq gateway

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy