def SendBinaryRequest(data) : if data : data = IoTSocketStruct.MakeRequestTRHdr( uid = None, trackingNbr = 30303, dataFormat = IoTSocketStruct.PLDATA_FORMAT_BIN, formatOpt = IoTSocketStruct.PLDATA_FMT_OPT_NONE, dataLen = len(data) ) \ + data return xasTCPCli.AsyncSendData(data) return False
def RouteRequest(self, fromUID, toUID, trackingNbr, dataFormat, formatOpt, data): if toUID or self.CentralSessionExists(): if toUID: session = self._objectsSessions.get(toUID, None) else: session = self._centralSession data = IoTSocketStruct.MakeRequestTRHdr( fromUID, trackingNbr, dataFormat, formatOpt, len(data) ) \ + data if session and session.Send(data): return True if not toUID: toUID = IoTSocketStruct.CENTRAL_EMPTY_UID sessionData, exp = self._keepSessionsData.get(toUID, (None, None)) if sessionData is not None: sessionData.append(data) self.Log('ROUTER > REQUEST KEPT (#%s)' % trackingNbr) return True else: if self._onGetWebHookRequest: plFormat, plObject = IoTSocketStruct.DecodeJSONPayload( data, dataFormat) if plFormat is not None and plObject is not None: webHook = self._onGetWebHookRequest(self) if webHook: webHook.ObjRef = (fromUID, trackingNbr) webHook.OnResponseOk = self._onWebHookResponseOk webHook.OnClosed = self._onWebHookClosed webHook.Post(self._centralAuthKeyHex, fromUID, plObject, plFormat) return True self.Log('ROUTER > ERROR TO OPEN WEBHOOK OF REQUEST') self.Log('ROUTER > NO DESTINATION FOR REQUEST (#%s)' % trackingNbr) return False