Skip to main content

gevent-websocket is a WebSocket library for the gevent networking library.

Features include:

  • Integration on both socket level or using an abstract interface.

  • RPC and PubSub framework using WAMP (WebSocket Application Messaging Protocol).

  • Easily extendible using a simple WebSocket protocol plugin API

from geventwebsocket import WebSocketServer, WebSocketApplication, Resource

class EchoApplication(WebSocketApplication):
    def on_open(self):
        print "Connection opened"

    def on_message(self, message):
        self.ws.send(message)

    def on_close(self, reason):
        print reason

WebSocketServer(
    ('', 8000),
    Resource({'/': EchoApplication})
).serve_forever()

or a low level implementation:

from gevent import pywsgi
from geventwebsocket.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()

More examples can be found in the examples directory. Hopefully more documentation will be available soon.

Installation

The easiest way to install gevent-websocket is directly from PyPi using pip or setuptools by running the commands below:

$ pip install gevent-websocket

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 "geventwebsocket.gunicorn.workers.GeventWebSocketWorker" wsgi:websocket_app

Performance

gevent-websocket is pretty fast, but can be accelerated further by installing wsaccel and ujson or simplejson:

$ pip install wsaccel ujson

gevent-websocket automatically detects wsaccell and uses the Cython implementation for UTF8 validation and later also frame masking and demasking.

Get in touch

Get in touch on IRC #gevent on Freenode or on the Gevent mailinglist. Issues can be created on Bitbucket.

Metadata

Release files for gevent-websocket 0.9.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gevent-websocket 0.9.3
File Size Uploaded
gevent-websocket-0.9.3.tar.gz 16.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gevent-websocket 0.9.3
File Interpreter ABI Platform
gevent_websocket-0.9.3-py27-none-any.whl Python 2.7 none any Details

Total release size: 37.5 kB

Release files / gevent-websocket-0.9.3.tar.gz

Download URL gevent-websocket-0.9.3.tar.gz
Size 16.5 kB
Tags Source
SHA-256 checksum
How to use checksums
6475220340f9f8895a0f51bd2b9df3511bc7765dc055f49e997584bdaee3381f
BLAKE2b-256 checksum
How to use checksums
0e189e7d900b40a7be1785b27f5fdba0306bcb1b857b1683d34457a2b812dd77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / gevent_websocket-0.9.3-py27-none-any.whl

Download URL gevent_websocket-0.9.3-py27-none-any.whl
Size 21.0 kB
Tags Python 2.7
SHA-256 checksum
How to use checksums
c9ad2a46790679aa8f1144c7ed0bb93cc6fb93efd1edddc3ad1b94a146d2ace8
BLAKE2b-256 checksum
How to use checksums
7bb250f37e7c826e3d520b2af432768976c9edd5b39ee57739a94dda869ea180
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

0.10.1

2 release files

0.10

2 release files

0.9.5

1 release file

0.9.4

1 release file

This release

0.9.3 This release

2 release files

0.9.2

2 release files

0.9.1

2 release files

0.9

2 release files

0.3.6

1 release file

0.3.5

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page