Skip to content

Commit 8c09f70

Browse files
author
Dmitry Shabanov
committed
added reconnect
1 parent 9e60f9c commit 8c09f70

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

FIX44.py

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ def next_sequence_number(self):
3333
self.__sequence_number += 1
3434
return self.__sequence_number
3535

36+
def reset_sequence(self):
37+
self.__sequence_number = 0
38+
3639

3740
class LogonMessage(BaseMessage):
3841
def __init__(self, username, password, heartbeat=3, session=None):
@@ -108,12 +111,15 @@ class Client(asyncore.dispatcher):
108111
logging_level = logging.INFO
109112
authorized = False
110113
commission = 0.000030
114+
buffer = ''
115+
address = None
111116

112117
def __init__(self, address: tuple, user, password, session, log_file=None):
113118
asyncore.dispatcher.__init__(self)
114119
self.session = session
115120
self.user = user
116121
self.password = password
122+
self.address = address
117123

118124
self.symbol_requests = []
119125
self.market_last_request = 1
@@ -142,9 +148,14 @@ def __init__(self, address: tuple, user, password, session, log_file=None):
142148
Message.Types.ExecutionReport: [self.execution_report_handler],
143149
}
144150

151+
self.do_connect()
152+
153+
def do_connect(self):
154+
self.session.reset_sequence()
155+
self.authorized = False
145156
self.buffer = ''
146157
self.create_socket(socket.AF_INET, socket.SOCK_STREAM)
147-
self.connect(address)
158+
self.connect(self.address)
148159

149160
def add_handler(self, h_type, h_callback):
150161
if h_type not in self.handlers:
@@ -185,6 +196,7 @@ def handle_read(self):
185196
if len(self.buffer) == 0:
186197
self.logger.info(self.session.sender_id + ' disconnected.')
187198
self.close()
199+
self.do_connect()
188200
return
189201

190202
while True:

0 commit comments

Comments
 (0)