我正在尝试将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')
但是,假设我的目标是在页面上使用从列表中随机选择的其他值更新一个单词(从列表中随机选择)。您对实现这一目标有什么建议吗?