コード例 #1
0
 def RouteResponse(self, fromUID, toUID, trackingNbr, code, dataFormat,
                   formatOpt, data):
     if toUID or self.CentralSessionExists():
         if toUID:
             session = self._objectsSessions.get(toUID, None)
         else:
             session = self._centralSession
         if session:
             session.EndTrackingRequest(trackingNbr)
             data = IoTSocketStruct.MakeResponseTRHdr( fromUID,
                                                       trackingNbr,
                                                       code,
                                                       dataFormat,
                                                       formatOpt,
                                                       len(data) ) \
                  + data
             return session.Send(data)
     else:
         httpReq, exp = self._centralHTTPRequests.get(
             trackingNbr, (None, None))
         if httpReq:
             plFormat, plObject = IoTSocketStruct.DecodeJSONPayload(
                 data, dataFormat)
             if plFormat is not None and plObject is not None:
                 self.RemoveCentralHTTPRequest(httpReq)
                 return httpReq.SendResponse(code, plObject, plFormat)
     self.Log('ROUTER > NO DESTINATION FOR RESPONSE (#%s)' % trackingNbr)
     return False
コード例 #2
0
 def _onRequestRecv(self, xAsyncTCPClient, data, arg) :
     uid = arg[0]
     if len(arg) == 2 :
         trackingNbr, dataFormat, formatOpt, dataLen = arg[1]
         data = data.tobytes()
     else :
         hdr = IoTSocketStruct.DecodeRequestHdr(data.tobytes())
         trackingNbr, dataFormat, formatOpt, dataLen = hdr
         if dataLen > 0 :
             self._recv(dataLen, self._onRequestRecv, (uid, hdr))
             return
         data = b''
     print('ON REQUEST [%s] RECV' % trackingNbr)
     self._send(IoTSocketStruct.MakeResponseTRHdr(uid, trackingNbr, 0, dataFormat, 0, dataLen) + data)
     self._waitDataTransmission()
コード例 #3
0
 def _onWebHookResponseOk(self, centralHTTPWebHook, o):
     if o:
         uid, trackingNbr = centralHTTPWebHook.ObjRef
         try:
             code = int(o['Code'])
             fmt, data = IoTSocketStruct.EncodeJSONPayload(
                 o['Payload'], o['Format'])
             if fmt is not None and data is not None:
                 centralHTTPWebHook.ObjRef = (None, None)
                 session = self._objectsSessions.get(uid, None)
                 if session:
                     session.EndTrackingRequest(trackingNbr)
                     data = IoTSocketStruct.MakeResponseTRHdr( None,
                                                               trackingNbr,
                                                               code,
                                                               fmt,
                                                               IoTSocketStruct.PLDATA_FMT_OPT_NONE,
                                                               len(data) ) \
                          + data
                     session.Send(data)
         except:
             pass