我有一个Tornado
SockJs
套接字连接。关闭连接时,将调用on_close
方法。从我从连接的客户端列表中删除用户。但是' PING' ' PONG'继续发生,因为这种联系看起来不像真正的关闭。
class EchoWebSocket(sockjs.tornado.SockJSConnection):
def on_open(self,info):
self.send(str('add'))
def on_message(self, message):
message = simplejson.loads(message)
TASK = message['TASK']
if TASK == "PING":
self.send('PONG')
elif TASK == 'ADD_CLIENT':
addUserAfterSocketConnection(self, message, "SOCKJS")
def on_close(self):
removeUserAfterSocketConnectionClose(self)
如果我将self.close()放在on_close()中,它会在递归循环中运行。我可以看到API中有close
和on_close
方法,它们有何不同以及它们的用途是什么?
def on_close(self):
removeUserAfterSocketConnectionClose(self)
self.close()
如何有效地关闭此连接,以便不会出现这样的错误。已发送。