def _send_request(self, data: dict) -> None: """Send request to server via ZeroMQ System socket""" try: self.sys_socket.send_json(data) msg = self.sys_socket.recv_string() # terminal received the request assert msg == 'OK', 'Something wrong on server side' except AssertionError as err: raise zmq.NotDone(err) except zmq.ZMQError: raise zmq.NotDone("Sending request ERROR")
def _send_request(self, data: dict) -> None: """Send request to server via ZeroMQ System socket""" try: self.sys_socket.send_json(data) msg = self.sys_socket.recv_string() logger.debug("ZMQ SYS REQUEST: {} -> {}".format(data, msg)) # terminal received the request assert msg == "OK", "Something wrong on server side" except AssertionError as err: raise zmq.NotDone(err) except zmq.ZMQError: raise zmq.NotDone("Sending request ERROR")
def _pull_reply(self): """Get reply from server via Data socket with timeout""" try: msg = self.data_socket.recv_json() except zmq.ZMQError: raise zmq.NotDone('Data socket timeout ERROR') return msg
def _t_livedata(): socket = api.live_socket() while True: try: last_candle = socket.recv_json() except zmq.ZMQError: raise zmq.NotDone("Live data ERROR") print(last_candle)
def _push_chart_data(self, data: dict) -> None: """Send message for chart control to server via ZeroMQ chart data socket""" try: if self.debug: print("ZMQ PUSH CHART DATA: ", data, " -> ", data) self.chart_data_socket.send_json(data) except zmq.ZMQError: raise zmq.NotDone("Sending request ERROR")
def _indicator_pull_reply(self): """Get reply from server via Data socket with timeout""" try: msg = self.indicator_data_socket.recv_json() except zmq.ZMQError: raise zmq.NotDone("Indicator Data socket timeout ERROR") logger.debug("ZMQ INDICATOR DATA REPLY: {}".format(msg)) return msg
def _t_streaming_events(self): socket = api.streaming_socket() while True: try: trans = socket.recv_json() request, reply = trans.values() except zmq.ZMQError: raise zmq.NotDone("Streaming data ERROR")
def _pull_reply(self): """Get reply from server via Data socket with timeout""" try: msg = self.data_socket.recv_json() except zmq.ZMQError: raise zmq.NotDone("Data socket timeout ERROR") if self.debug: print("ZMQ DATA REPLY: ", msg) return msg
def _t_streaming_events(self): # create socket connection for the Thread socket = self.oapi.streaming_socket() while True: try: transaction = socket.recv_json() except zmq.ZMQError: raise zmq.NotDone("E: Streaming data ERROR") self._transaction(transaction)
def _t_livedata(self): # create socket connection for the Thread socket = self.oapi.live_socket() while True: try: last_candle = socket.recv_json() except zmq.ZMQError: raise zmq.NotDone("Live data ERROR") self.q_livedata.put(last_candle)
def _send_request(self, data: dict) -> None: """Send request to server via ZeroMQ System socket Lazy Pirate implementation. """ # ram Caller's name print("I: Caller 2 ", sys._getframe(2).f_code.co_name) try: # ram sequence = 0 retries_left = self.REQUEST_RETRIES while retries_left: self.sequence += 1 request = str(self.sequence).encode() print("I: Sending (%s)" % self.sequence) print("data ", data) self.sys_socket.send_json(data) expect_reply = True while expect_reply: socks = dict(self.poll.poll(self.SYS_TIMEOUT)) if socks.get(self.sys_socket) == zmq.POLLIN: msg = self.sys_socket.recv_string() if not msg: break # terminal received the request if str(msg) == 'OK': print("I: Server replied %s" % msg) retries_left = 0 expect_reply = False else: print("E: Malformed reply from server: %s" % msg) else: print("W: No response from server, retrying…") # Socket is confused. Close and remove it. self.sys_socket.setsockopt(zmq.LINGER, 0) self.sys_socket.close() self.poll.unregister(self.sys_socket) retries_left -= 1 if retries_left == 0: print("E: Server seems to be offline, abandoning") break print("I: Reconnecting and resending (%s)" % self.sequence) # Create new connection self.sys_socket = self.context.socket(zmq.REQ) self.sys_socket.RCVTIMEO = self.SYS_TIMEOUT self.sys_socket.connect('tcp://{}:{}'.format( self.HOST, self.SYS_PORT)) self.poll.register(self.sys_socket, zmq.POLLIN) self.sys_socket.send_json(data) # ram self.context.term() except zmq.ZMQError: raise zmq.NotDone("E: Sending request ERROR")
def _pull_reply(self): """ Get reply from data socket with timeout """ poller = zmq.Poller() poller.register(self.data_socket, zmq.POLLIN) # timeout in milliseconds if poller.poll(self.poller_timeout * 1000): msg = self.data_socket.recv_json() else: raise zmq.NotDone('Timeout was reached...') return msg
def _t_livedata(self): # create socket connection for the Thread socket = self.oapi.live_socket() while True: try: last_data = socket.recv_json() logger.debug("ZMQ LIVE DATA: {}".format(last_data)) except zmq.ZMQError: raise zmq.NotDone("Live data ERROR") self.q_livedata.put(last_data)
def _t_streaming_events(self): # create socket connection for the Thread socket = self.oapi.streaming_socket() while True: try: transaction = socket.recv_json() if self.debug: print('ZMQ STREAMING TRANSACTION: ', transaction) except zmq.ZMQError: raise zmq.NotDone("Streaming data ERROR") self._transaction(transaction)
def _t_livedata(self): # create socket connection for the Thread socket = self.oapi.live_socket() while True: try: last_data = socket.recv_json() # if self.debug: print('ZMQ LIVE DATA: ', last_data) except zmq.ZMQError: raise zmq.NotDone("Live data ERROR") self.q_livedata.put(last_data)