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.GeventWebSocketWorker" 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
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.GeventWebSocketWorker" 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.5.tar.gz
(12.4 kB
view details)
File details
Details for the file gwebsocket-0.9.5.tar.gz
.
File metadata
- Download URL: gwebsocket-0.9.5.tar.gz
- Upload date:
- Size: 12.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 143fb07e9907bf45c0e8118bea0979489602ad42a28548152c28e859d6449cb4 |
|
MD5 | 015dcdd87f30d4676562cc7d39bb3c3a |
|
BLAKE2b-256 | 0556178e4c099254da08d3341ff4e145412811ad3b984eab15df33fd5bbd7a2b |