geventとWebSocketとFlask
geventでWebSocketを使ってみる - へきょのーと
前回の内容にFlaskを組み込んでみた。
インストール
前回の環境をそのまま使います。
pip install Flask mkdir templates mv index.html templates/
コーディング
app.py
import os from gevent import pywsgi from geventwebsocket.handler import WebSocketHandler from flask import Flask, request, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') @app.route('/echo') def echo(): if request.environ.get('wsgi.websocket'): ws = request.environ['wsgi.websocket'] while True: src = ws.receive() if src is None: break ws.send(src) return if __name__ == '__main__': server = pywsgi.WSGIServer(('127.0.0.1', 8000), app, handler_class=WebSocketHandler) server.serve_forever()
index.html
※変更なし
実行
python app.py
ブラウザで"http://127.0.0.1:8000/"にアクセスして
input textに文字を入力して"push"すると
textareaに入力した内容が表示されました!