|
@@ -4,6 +4,7 @@ |
|
@@ -4,6 +4,7 @@ |
|
4
|
# @Author : Lemon
|
4
|
# @Author : Lemon
|
|
5
|
# @File : core.py
|
5
|
# @File : core.py
|
|
6
|
# @Software: PyCharm
|
6
|
# @Software: PyCharm
|
|
|
|
7
|
+import functools
|
|
7
|
import json
|
8
|
import json
|
|
8
|
|
9
|
|
|
9
|
from tornado import ioloop
|
10
|
from tornado import ioloop
|
|
@@ -16,6 +17,12 @@ from lib.socket_ import MessageSocketClient |
|
@@ -16,6 +17,12 @@ from lib.socket_ import MessageSocketClient |
|
16
|
monitor = Monitor()
|
17
|
monitor = Monitor()
|
|
17
|
|
18
|
|
|
18
|
|
19
|
|
|
|
|
20
|
+def server_replace(ws_url):
|
|
|
|
21
|
+ '''新开一个socket尝试连接新地址,存储在临时变量里'''
|
|
|
|
22
|
+ monitor._temp_socket = MessageSocketClient(connect_success, message_receive)
|
|
|
|
23
|
+ monitor._temp_socket.connect(ws_url, reconnect=False) # 失败不重试
|
|
|
|
24
|
+
|
|
|
|
25
|
+
|
|
19
|
def message_receive(message):
|
26
|
def message_receive(message):
|
|
20
|
print("收到消息", message)
|
27
|
print("收到消息", message)
|
|
21
|
if message == 'login1':
|
28
|
if message == 'login1':
|
|
@@ -39,20 +46,24 @@ def message_receive(message): |
|
@@ -39,20 +46,24 @@ def message_receive(message): |
|
39
|
print(traceback.format_exc())
|
46
|
print(traceback.format_exc())
|
|
40
|
|
47
|
|
|
41
|
|
48
|
|
|
42
|
-def server_replace(ws_url):
|
|
|
|
43
|
- monitor._temp_socket = MessageSocketClient(connect_success, message_receive)
|
|
|
|
44
|
- monitor._temp_socket.connect(ws_url, reconnect=False)
|
49
|
+def host():
|
|
|
|
50
|
+ return 'ws://fbchat.data.gzntkj.com:8081', True
|
|
45
|
|
51
|
|
|
46
|
|
52
|
|
|
47
|
def connect_success(sock):
|
53
|
def connect_success(sock):
|
|
48
|
if monitor._temp_socket == sock:
|
54
|
if monitor._temp_socket == sock:
|
|
49
|
- sock.auto_reconnet = True
|
55
|
+ sock.auto_reconnet = True # 新的连接成功后把断线重连开启
|
|
50
|
monitor._socket.quit() # 旧的断开
|
56
|
monitor._socket.quit() # 旧的断开
|
|
51
|
- monitor._temp_socket = None
|
57
|
+ monitor._temp_socket = None # 清除临时变量
|
|
52
|
|
58
|
|
|
53
|
monitor.bind(sock)
|
59
|
monitor.bind(sock)
|
|
54
|
monitor._init_server_()
|
60
|
monitor._init_server_()
|
|
55
|
- monitor._socket.new_server_func = lambda: control_server.get_ws_address(monitor._name, sock.ws_url)
|
61
|
+
|
|
|
|
62
|
+ monitor._socket.new_server_func = functools.partial(
|
|
|
|
63
|
+ control_server.get_ws_address,
|
|
|
|
64
|
+ monitor._name,
|
|
|
|
65
|
+ sock.ws_url
|
|
|
|
66
|
+ )
|
|
56
|
monitor._socket.server_replace = server_replace
|
67
|
monitor._socket.server_replace = server_replace
|
|
57
|
|
68
|
|
|
58
|
|
69
|
|