程序运行一段时间就会断开连接(SeaTable SocketIO connection dropped),然后会自动重连两次,第三次断连时程序就会结束,没有返回任何提示或错误。
请问一下有人遇到过这种情况吗?最后是如何解决的呢?感谢。
看到另一个帖子里讲,可以可以重写 ‘connect’, ‘disconnect’ 等事件(类似重写 UPDATE_DTABLE),实现自定义触发操作。
在 seatable/seatable-api-python/blob/master/seatable_api/socket_io.py中
class SocketIO(object):
def __init__(self, base):
self.base = base
self.sio = SIO(request_timeout=base.timeout)
def __str__(self):
return '<SeaTable SocketIO [ %s ]>' % self.base.dtable_name
def _connect(self):
self.sio.on('connect', self._on_connect)
self.sio.on('disconnect', self._on_disconnect)
self.sio.on('io-disconnect', self._on_io_disconnect)
self.sio.on('connect_error', self._on_connect_error)
self.sio.on(UPDATE_DTABLE, self.on_update_dtable)
self.sio.on(NEW_NOTIFICATION, self.on_new_notification)
self.sio.connect(self._dtable_ws_url())
def _dtable_ws_url(self):
return self.base.dtable_server_url + '?dtable_uuid=' + self.base.dtable_uuid
是在_on_disconnect方法中加入
self._refresh_jwt_token()
self.sio.connect(self._dtable_ws_url())
对吗?这样可以使程序不停止运行吗?