Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
This repository was archived by the owner on Jan 5, 2023. It is now read-only.

Official mirror of the repository at Gitlab.

License

NotificationsYou must be signed in to change notification settings

jgelens/gevent-websocket

Repository files navigation

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

Features include:

  • Integration on both socket level or using an abstract interface.
  • RPC and PubSub framework usingWAMP (WebSocket ApplicationMessaging Protocol).
  • Easily extendible using a simple WebSocket protocol plugin API
from geventwebsocket import WebSocketServer, WebSocketApplication, Resourcefrom collections import OrderedDictclass 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(OrderedDict([('/', EchoApplication)]))).serve_forever()

or a low level implementation:

from gevent import pywsgifrom geventwebsocket.handler import WebSocketHandlerdef 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 theexamples directory. Hopefully moredocumentation will be available soon.

Installation

The easiest way to install gevent-websocket is directly fromPyPi using pip orsetuptools by running the commands below:

$ pip install gevent-websocket

Gunicorn Worker

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

gunicorn -k "geventwebsocket.gunicorn.workers.GeventWebSocketWorker" wsgi:websocket_app

Performance

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

$ pip install wsaccel ujson

gevent-websocket automatically detectswsaccell and uses the Cythonimplementation for UTF8 validation and later also frame masking anddemasking.

Get in touch

Get in touch on IRC #gevent on Freenode or on the Geventmailinglist. Issues can be createdonBitbucket.

About

Official mirror of the repository at Gitlab.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp