|
...
|
...
|
@@ -4,6 +4,7 @@ |
|
|
|
# @Author : Lemon
|
|
|
|
# @File : core.py
|
|
|
|
# @Software: PyCharm
|
|
|
|
import functools
|
|
|
|
import json
|
|
|
|
|
|
|
|
from tornado import ioloop
|
|
...
|
...
|
@@ -16,6 +17,12 @@ from lib.socket_ import MessageSocketClient |
|
|
|
monitor = Monitor()
|
|
|
|
|
|
|
|
|
|
|
|
def server_replace(ws_url):
|
|
|
|
'''新开一个socket尝试连接新地址,存储在临时变量里'''
|
|
|
|
monitor._temp_socket = MessageSocketClient(connect_success, message_receive)
|
|
|
|
monitor._temp_socket.connect(ws_url, reconnect=False) # 失败不重试
|
|
|
|
|
|
|
|
|
|
|
|
def message_receive(message):
|
|
|
|
print("收到消息", message)
|
|
|
|
if message == 'login1':
|
|
...
|
...
|
@@ -39,20 +46,24 @@ def message_receive(message): |
|
|
|
print(traceback.format_exc())
|
|
|
|
|
|
|
|
|
|
|
|
def server_replace(ws_url):
|
|
|
|
monitor._temp_socket = MessageSocketClient(connect_success, message_receive)
|
|
|
|
monitor._temp_socket.connect(ws_url, reconnect=False)
|
|
|
|
def host():
|
|
|
|
return 'ws://fbchat.data.gzntkj.com:8081', True
|
|
|
|
|
|
|
|
|
|
|
|
def connect_success(sock):
|
|
|
|
if monitor._temp_socket == sock:
|
|
|
|
sock.auto_reconnet = True
|
|
|
|
sock.auto_reconnet = True # 新的连接成功后把断线重连开启
|
|
|
|
monitor._socket.quit() # 旧的断开
|
|
|
|
monitor._temp_socket = None
|
|
|
|
monitor._temp_socket = None # 清除临时变量
|
|
|
|
|
|
|
|
monitor.bind(sock)
|
|
|
|
monitor._init_server_()
|
|
|
|
monitor._socket.new_server_func = lambda: control_server.get_ws_address(monitor._name, sock.ws_url)
|
|
|
|
|
|
|
|
monitor._socket.new_server_func = functools.partial(
|
|
|
|
control_server.get_ws_address,
|
|
|
|
monitor._name,
|
|
|
|
sock.ws_url
|
|
|
|
)
|
|
|
|
monitor._socket.server_replace = server_replace
|
|
|
|
|
|
|
|
|
...
|
...
|
|