Flask-SocketIO通过Gunicorn和REDIS作为消息队列

时间:2018-08-20 21:16:42

标签: python flask socket.io gunicorn flask-socketio

Heyo,

我正在尝试使用flask-socketio创建websocket服务器,但是遇到了问题,套接字丢失了!我正在与4名工人一起运行gunicorn,我知道socketio库正在将数据存储在内存中的事实(这就是为什么我安装过Redis的原因是因为之前遇到过类似的问题),我已经将一个应用程序指向了Redis服务器但是它仍然不能与4个工人一起使用,但是与1个工人一起运行gunicorn是可以的。

这是我的应用程序初始化代码:

from flask import Flask
from flask_json import FlaskJSON, JsonError, json_response, as_json
from webroutes import shallow
from userapi import user_api
from app_service import shallow_service
import os
from flask_socketio import SocketIO
from reddissession import RedisSessionInterface
from socket_worker import Messenger
import eventlet
eventlet.monkey_patch()
# from gevent.wsgi import WSGIServer

application = Flask(__name__)
application.secret_key = os.urandom(64)
FlaskJSON(application)
socketio = SocketIO()
socketio.on_namespace(Messenger("/messenger_socket"));
application.register_blueprint(shallow)
application.register_blueprint(user_api)
application.register_blueprint(shallow_service)
application.config['TEMPLATES_AUTO_RELOAD'] = True


application.session_interface = RedisSessionInterface()
socketio.init_app(application, message_queue='redis://')

这是我在console.log中得到的:

Output

请发送帮助,谢谢

1 个答案:

答案 0 :(得分:0)