为了账号安全,请及时绑定邮箱和手机立即绑定

flask_socketio使用uswgi启动访问socketio会400错误

flask_socketio使用uswgi启动访问socketio会400错误

斯蒂芬大帝 2019-02-25 15:35:08
python依赖: flask flask_socketio uwsgi gevent /web/__init__.py from flask import Flask from flask_socketio import SocketIO, emit app = Flask(__name__) socket_io = SocketIO(app) @socket_io.on('test') def handle_my_custom_event(json): print(json) emit('my response', json) /web/static/index.html <script type="text/javascript" src="./socket.io.min.js"></script> <script type="text/javascript" charset="utf-8"> var socket = io.connect('http://' + document.domain + ':' + location.port); socket.on('connect', function() { socket.emit('test', {data: 'I\'m connected!'}); }); </script> /run.sh #!/bin/sh uwsgi --http :8000 --gevent 1000 --http-websockets --master --module web --callable app 然后访问http://127.0.0.1:8000/static/index.html。抓包400错误无法访问socket.io 上的使用方法来自flask_socketio文档。其中下面的使用nginx代理的方式也用过了。没有用一样是400。 上面的uwsgi只能在linux上用。。我全部都是在docker中做的测试。
查看完整描述

1 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

uwsgi 不是了解。
我用的是Gunicorn,也遇到相同问题。
查看文档后使用自定义gevent web server解决了。

When using gunicorn with the gevent worker and the WebSocket support provided by gevent-websocket, the command that starts the server must be changed to select a custom gevent web server that supports the WebSocket protocol. The modified command is:
gunicorn -k geventwebsocket.gunicorn.workers.GeventWebSocketWorker -w 1 module:app

pip install gevent-websocket

查看完整回答
反对 回复 2019-03-04
  • 1 回答
  • 0 关注
  • 2027 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信