GEVENT-WEBSOCKET(1) gevent-websocket GEVENT-WEBSOCKET(1) (NAME) gevent-websocket - gevent-websocket gevent-websocket WebSocket gevent Jeffrey Gelens . BSD . from geventwebsocket import WebSocketServer, WebSocketApplication, Resource class EchoApplication(WebSocketApplication): def on_message(self, message): self.ws.send(message) WebSocketServer( ('', 8000), Resource({'/': EchoApplication}) ) WebSocketServer . wsgi.websocket WSGI . Flask : from geventwebsocket import WebSocketServer, WebSocketError from flask import Flask, request, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/api') def api(): ws = request.environ.get('wsgi.websocket') if not ws: abort(400, "Expected WebSocket request") while True: try: message = ws.receive() ws.send("Your message was: {}".format(message)) except WebSocketError: # Possibility to execute code when connection is closed break if __name__ == '__main__': server = WebSocketServer(("", 8000), app) server.serve_forever() : o WebSocket WebSocket o RFC6455 Hybi-10+ o gevent : o ( Autobahn Websocket Testsuite ) PIP (DISTRIBUTE & PIP) gevent-websocket pip : $ pip install gevent-websocket (GET THE CODE) BitBucket . : hg clone https://www.bitbucket.org/Jeffrey/gevent-websocket (tarball) : curl -LO https://bitbucket.org/Jeffrey/gevent-websocket/TODO : $ python setup.py install (MAIN CLASSES) (EXCEPTIONS) o <> o <> o <> (AUTHORS) Jeffrey Gelens (COPYRIGHT) 2013, Jeffrey Gelens 0.10 July 4, 2026 GEVENT-WEBSOCKET(1)