Skip to main content

Websocket handler for the gevent pywsgi server, a Python network library

Project description

==========
gwebsocket
==========

`gwebsocket`_ is a WebSocket library for the gevent_ networking library.

::

from gevent import pywsgi
from gwebsocket.handler import WebSocketHandler

def websocket_app(environ, start_response):
if environ["PATH_INFO"] == '/echo':
ws = environ["wsgi.websocket"]
message = ws.receive()
ws.send(message)

server = pywsgi.WSGIServer(("", 8000), websocket_app,
handler_class=WebSocketHandler)
server.serve_forever()

Installation
------------

The easiest way to install gwebsocket is directly from PyPi_ using pip or
setuptools by running the commands below::

$ pip install gwebsocket


Gunicorn Worker
^^^^^^^^^^^^^^^

Using Gunicorn it is even more easy to start a server. Only the
`websocket_app` from the previous example is required to start the server.
Start Gunicorn using the following command and worker class to enable WebSocket
funtionality for the application.

::

gunicorn -k "gwebsocket.gunicorn.GWebSocketWorker" wsgi:websocket_app

Performance
^^^^^^^^^^^

`gwebsocket`_ is pretty fast, but can be accelerated further by
installing `wsaccel <https://github.com/methane/wsaccel>`_ and `ujson` or `simplejson`::

$ pip install wsaccel ujson

`gwebsocket`_ automatically detects ``wsaccell`` and uses the Cython
implementation for UTF8 validation and later also frame masking and demasking.

Get in touch
^^^^^^^^^^^^

Issues can be created
at `Bitbucket <https://bitbucket.org/btubbs/gwebsocket/issues?status=new&status=open>`_.

Acknowledgements
^^^^^^^^^^^^^^^^

gwebsocket is based on `Jeffrey Gelens`_' `gevent-websocket`_.
gwebsocket omits gevent-websocket's WAMP features and WebSocketApplication mini
framework, in favor of providing just a minimal library for use in other
frameworks. gwebsocket also makes it possible to do cleanup on close without
building your app as a WebSocketApplication.

.. _gwebsocket: http://www.bitbucket.org/btubbs/gwebsocket/
.. _gevent: http://www.gevent.org/
.. _Jeffrey Gelens: http://www.gelens.org/
.. _PyPi: http://pypi.python.org/pypi/gevent-websocket/
.. _repository: http://www.bitbucket.org/Jeffrey/gevent-websocket/
.. _RFC6455: http://datatracker.ietf.org/doc/rfc6455/?include_text=1

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gwebsocket-0.9.9.tar.gz (13.2 kB view details)

Uploaded Source

File details

Details for the file gwebsocket-0.9.9.tar.gz.

File metadata

  • Download URL: gwebsocket-0.9.9.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for gwebsocket-0.9.9.tar.gz
Algorithm Hash digest
SHA256 f36170b33624f5b4564a1d4ecfaea8126dc1b2cb058a547bf551c00e594097bc
MD5 0bf1bd95c46cde6b494a1740e4f68272
BLAKE2b-256 28d2e03e398bae8014d718dda6b3e4feef3ccf8e061d4d424c024009f4c6158d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page