Package: gevent-websocket
Licensed under the Apache License, Version 2.0 (the "License");you may not use this file except in compliance with the License.You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0Unless required by applicable law or agreed to in writing, softwaredistributed under the License is distributed on an "AS IS" BASIS,WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.See the License for the specific language governing permissions andlimitations under the License.Download-URL: https://www.gitlab.com/noppo/gevent-websocketDescription: ================gevent-websocket================`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 ApplicationMessaging Protocol).- Easily extendible using a simple WebSocket protocol plugin API::from geventwebsocket import WebSocketServer, WebSocketApplication, Resourceclass EchoApplication(WebSocketApplication):def on_open(self):print "Connection opened"def on_message(self, message):self.ws.send(message)def on_close(self, reason):print reasonWebSocketServer(('', 8000),Resource({'/': 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 the ``examples`` directory. Hopefully moredocumentation will be available soon.Installation------------The easiest way to install gevent-websocket is directly from PyPi_ using pip orsetuptools by running the commands below::$ pip install gevent-websocketGunicorn 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 WebSocketfuntionality for the application.::gunicorn -k "geventwebsocket.gunicorn.workers.GeventWebSocketWorker" wsgi:websocket_appPerformance^^^^^^^^^^^`gevent-websocket`_ is pretty fast, but can be accelerated further byinstalling `wsaccel <https://github.com/methane/wsaccel>`_ and `ujson` or `simplejson`::$ pip install wsaccel ujson`gevent-websocket`_ automatically detects ``wsaccell`` 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 Gevent `mailinglist<https://groups.google.com/forum/#!forum/gevent>`_. Issues can be createdon `Bitbucket <https://bitbucket.org/Jeffrey/gevent-websocket/issues?status=new&status=open>`_... _WAMP: http://www.wamp.ws.. _gevent-websocket: http://www.bitbucket.org/Jeffrey/gevent-websocket/.. _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=1Platform: UNKNOWNClassifier: Environment :: Web EnvironmentClassifier: Intended Audience :: DevelopersClassifier: License :: OSI Approved :: Apache Software LicenseClassifier: Operating System :: MacOS :: MacOS XClassifier: Operating System :: POSIXClassifier: Programming Language :: PythonClassifier: Programming Language :: Python :: 2Classifier: Programming Language :: Python :: 2.7Classifier: Programming Language :: Python :: 3Classifier: Programming Language :: Python :: 3.5Classifier: Topic :: InternetClassifier: Topic :: Software Development :: Libraries :: Python Modules