サンプルコードでFlask-Socketsを使用しようとしています:
sockets = Sockets(app)
@sockets.route('/echo')
def echo_socket(ws):
while True:
message = ws.receive()
ws.send(message)
残念ながら、ブラウザを使用して URL /echo にアクセスすると、次のようなエラーが表示されます。
File "/Library/Python/2.7/site-packages/Flask-0.10-py2.7.egg/flask/app.py", line 1836, in __call__
return self.wsgi_app(environ, start_response)
File "/Library/Python/2.7/site-packages/flask_sockets.py", line 37, in __call__
environment = environ['wsgi.websocket']
KeyError: 'wsgi.websocket'
私が間違っていることを誰かが考えていますか?すべてのヒントは大歓迎です!
[編集] @jbub - ヒントをありがとう! まず、組み込みの開発サーバーの代わりに gunicorn を使用します。だから私はそれを使って始めましたgunicorn -k flask_sockets.worker -b 0.0.0.0:5000 main:app
。次に、views.py に以下のコードを挿入しました。echo_test.html は、指定したコードです。/echo_test にアクセスすると、実際に「ソケットが閉じられました」というプロンプトが表示されます。
sockets = Sockets(app)
@sockets.route('/echo')
def echo_socket(ws):
while True:
message = ws.receive()
ws.send(message)
@app.route('/echo_test', methods=['GET'])
def echo_test():
return render_template('echo_test.html')
しかし、私の目的は、リストからランダムに選択された他の値で更新されるページに (リストからランダムに選択された) 単語を持つことだとしましょう。それを達成するためのヒントはありますか?