Flask-SocketIO:消息仅在ping_interval

时间:2019-01-24 16:54:24

标签: flask-socketio

我正在使用Flask-SocketIO将消息从基于ZeroMQ的系统联合到使用Web套接字的浏览器客户端。这本来应该很薄。

但是,我发现即使将连接(通过浏览器)升级为Web套接字,在socketio中发出的消息实际上并不会通过电线传递,除非浏览器每25秒发送一次ping。

通过将socketio ping_interval参数修改为1,可以有效地回到轮询。下面的屏幕截图显示了25秒的时间间隔,并且只有在轮询后才以序列号到达消息。


class Receiver(threading.Thread):
   ...
   def onMessageReceived(msg):
   socketio.emit('msgtype', msg.toJson())

app = flask.Flask(__name__, root_path=root + "/dashboard/")
socketio = SocketIO(app, logger=log, async_mode=async_mode, ping_interval=1.5)
thread = socketio.start_background_task(receiver)
socketio.run(app, host='localhost', port=8000)

flask-socketio / engineio为什么不立即发出消息?

debug inspector

0 个答案:

没有答案