Skip to content

Commit ab1477e

Browse files
author
Wasin Waeosri
committed
now handle each message type separately
1 parent e922789 commit ab1477e

File tree

2 files changed

+47
-8
lines changed

2 files changed

+47
-8
lines changed

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
.vscode/
22
market_price.py
3-
mrn_python/
3+
mrn_python/
4+
test_result.txt
5+
test_result_2.txt
6+
mrn_other_example/

mrn_prototype.py

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,16 @@
3131
web_socket_app = None
3232
web_socket_open = False
3333

34+
_news_envelopes = []
35+
3436
''' MRN Process Code '''
3537

3638

39+
def decodeFieldList(fieldList_dict):
40+
for key, value in fieldList_dict.items():
41+
print("Name = %s: Value = %s" % (key, value))
42+
43+
3744
def send_mrn_request(ws):
3845
""" Create and send MRN request """
3946
mrn_req_json = {
@@ -49,12 +56,34 @@ def send_mrn_request(ws):
4956
print(json.dumps(mrn_req_json, sort_keys=True, indent=2, separators=(',', ':')))
5057

5158

52-
def processRefresh(ws):
53-
return None
59+
def processRefresh(ws, message_json):
60+
61+
print("RECEIVED: Refresh Message")
62+
decodeFieldList(message_json["Fields"])
63+
64+
65+
def processUpdate(ws, message_json):
66+
#print("RECEIVED: Update Message")
67+
#print(json.dumps(message_json, sort_keys=True, indent=2, separators=(',', ':')))
5468

69+
fields_data = message_json["Fields"]
70+
# Dump the FieldList first (for informational purposes)
71+
decodeFieldList(message_json["Fields"])
5572

56-
def processUpdate(ws):
57-
return None
73+
# Get data for all requried fields
74+
fragment = fields_data["FRAGMENT"]
75+
frag_num = fields_data["FRAG_NUM"]
76+
guid = fields_data["GUID"]
77+
mrn_src = fields_data["MRN_SRC"]
78+
tot_size = fields_data["TOT_SIZE"]
79+
80+
# if frag_num > 1: # We are now processing more than one part of an envelope - retrieve the current details
81+
# i = 0
82+
83+
84+
def processStatus(ws, message_json):
85+
print("RECEIVED: Status Message")
86+
print(json.dumps(message_json, sort_keys=True, indent=2, separators=(',', ':')))
5887

5988

6089
''' JSON-OMM Process functions '''
@@ -63,12 +92,19 @@ def processUpdate(ws):
6392
def process_message(ws, message_json):
6493
""" Parse at high level and output JSON of message """
6594
message_type = message_json['Type']
95+
message_domain = message_json['Domain']
6696

6797
if message_type == "Refresh":
6898
if 'Domain' in message_json:
69-
message_domain = message_json['Domain']
99+
#message_domain = message_json['Domain']
70100
if message_domain == "Login":
71101
process_login_response(ws, message_json)
102+
elif message_domain == mrn_domain:
103+
processRefresh(ws, message_json)
104+
elif message_type == "Update" and message_domain == mrn_domain:
105+
processUpdate(ws, message_json)
106+
elif message_type == "Status":
107+
processStatus(ws, message_json)
72108
elif message_type == "Ping":
73109
pong_json = {'Type': 'Pong'}
74110
ws.send(json.dumps(pong_json))
@@ -124,9 +160,9 @@ def send_login_request(ws):
124160

125161
def on_message(ws, message):
126162
""" Called when message received, parse message into JSON for processing """
127-
print("RECEIVED: ")
163+
#print("RECEIVED: ")
128164
message_json = json.loads(message)
129-
print(json.dumps(message_json, sort_keys=True, indent=2, separators=(',', ':')))
165+
#print(json.dumps(message_json, sort_keys=True, indent=2, separators=(',', ':')))
130166

131167
for singleMsg in message_json:
132168
process_message(ws, singleMsg)

0 commit comments

Comments
 (0)