我最近开始在烧瓶应用程序中以本地WebSocket API作为客户端使用flask-sockets
。我想知道是否有适当的方法以一定间隔从服务器发送ping请求作为keepalive?
遍历geventwebsocket
库时,我注意到了handle_ping(...)
的定义,但是它从未被调用过。有没有办法确定WS上的ping间隔?
有时一分钟半后,我发现我的插座会死掉。
@socket_blueprint.route('/ws', defaults={'name':''})
def echo_socket(ws):
while not ws.closed:
ws_list.append(
msg = ws.receive()
ws.send(msg)
如果我将它们保存在列表中,我可能会启动一个单独的线程并每30秒手动将ping操作码发送给客户端,但是我觉得有一种更好的方法来处理它。.
答案 0 :(得分:1)
在service
中,在此线程中创建一个thread
,向client
发送一些数据(任何数据)。如果client
已断开连接,则15秒后服务器将关闭。
我在gevent websocket
或flask-sockets
中找不到有关ping的任何方法。因此,采用这种方法。