Jeffrey Gelens avatar Jeffrey Gelens committed 8431792

Implemented worker for Gunicorn

Comments (0)

Files changed (4)

 _gevent-websocket is written and maintained by `Jeffrey Gelens`_ and licensed
 under the BSD license.
-Install gevent-websocket
 Install Python 2.4 or newer and gevent and its dependencies. The latest release
 can be download from _PyPi or by cloning the _repository.
+Native Gevent
+At the moment gevent-websocket has one handler based on the Pywsgi gevent
+server. Set the `handler_class` when creating a pywsgi server instance to make
+use of the Websocket functionality:
+    from gevent import pywsgi
+    from geventwebsocket.handler import WebSocketHandler
+    server = pywsgi.WSGIServer(('', 8000), websocket_app,
+        handler_class=WebSocketHandler)
+    server.serve_forever()
+Afterwards write a WSGI application with a 3rd parameter, namely a websocket instance:
+    def websocket_app(environ, start_response, ws):
+        if ws.path == '/echo':
+            message = ws.wait()
+            ws.send(message)
+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.
+Dtart Gunicorn using the following command and worker class:
+    gunicorn -k "geventwebsocket.gunicorn.workers.GeventWebSocketWorker" gunicorn_websocket:websocket_app
 .. _gevent-websocket:
 .. _gevent:
 .. _Jeffrey Gelens:
Add a comment to this file


Empty file added.


+from geventwebsocket.handler import WebSocketHandler
+from gunicorn.workers.ggevent import GeventPyWSGIWorker
+class GeventWebSocketWorker(GeventPyWSGIWorker):
+    wsgi_handler = WebSocketHandler


 from gevent.pywsgi import WSGIHandler
 from geventwebsocket import WebSocket
 class WebSocketHandler(WSGIHandler):
     def handle_one_response(self):
         self.time_start = time.time()
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.