async def face_event(self): last_seq = -1 retry_time = 3000 retry_count_limit = 60000 // retry_time retry_count = 0 while self.running and self.face: name = Name("/localhost/nfd/faces/events") face_interest = Interest() if last_seq >= 0: name.appendSequenceNumber(last_seq + 1) face_interest.canBePrefix = False else: face_interest.mustBeFresh = True face_interest.canBePrefix = True logging.info("Face event notification stream %s", name.toUri()) face_interest.name = name # face_interest.interestLifetimeMilliseconds = 60000 face_interest.interestLifetimeMilliseconds = retry_time ret = await fetch_data_packet(self.face, face_interest) timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S") if isinstance(ret, Data): retry_count = 0 last_seq = ret.name[-1].toSequenceNumber() face_event = FaceEventNotificationMessage() try: ProtobufTlv.decode(face_event, ret.content) dic = self.face_event_to_dict(face_event.face_event_notification) dic['seq'] = str(last_seq) dic['time'] = timestamp self.emit('face event', dic) self.event_list.append(dic) except RuntimeError as exc: logging.fatal('Decode failed %s', exc) last_seq = -1 elif ret is None: if retry_count >= retry_count_limit: logging.info("No response: face event") last_seq = -1 retry_count = 0 else: retry_count += 1 else: logging.info("NFD is not running: start reconnection") self.start_reconnection() return await asyncio.sleep(0.1)
from pyndn import Interest, Name, Key, NDN, _pyndn import datetime k = NDN.getDefaultKey() i = Interest() i.name = Name('/hello/world') i.minSuffixComponents = 2 i.maxSuffixComponents = 4 i.publisherPublicKeyDigest = k.publicKeyID i.exclude = None i.childSelector = 1 i.answerOriginKind = 4 i.scope = 2 i.interestLifetime = 30.0 i.nonce = b'abababa' print(i) print(i.ndn_data) i2 = _pyndn.Interest_obj_from_ndn(i.ndn_data) print(i2) assert(i.name == i2.name) assert(i.minSuffixComponents == i2.minSuffixComponents) assert(i.maxSuffixComponents == i2.maxSuffixComponents) assert(i.publisherPublicKeyDigest == i2.publisherPublicKeyDigest) assert(i.exclude == i2.exclude) assert(i.childSelector == i2.childSelector) assert(i.scope == i2.scope) assert(i.interestLifetime == i2.interestLifetime)
from pyndn import Interest, Name, Key, NDN, _pyndn import datetime k = NDN.getDefaultKey() i = Interest() i.name = Name('/hello/world') i.minSuffixComponents = 2 i.maxSuffixComponents = 4 i.publisherPublicKeyDigest = k.publicKeyID i.exclude = None i.childSelector = 1 i.answerOriginKind = 4 i.scope = 2 i.interestLifetime = 30.0 i.nonce = b'abababa' print(i) print(i.ndn_data) i2 = _pyndn.Interest_obj_from_ndn(i.ndn_data) print(i2) assert (i.name == i2.name) assert (i.minSuffixComponents == i2.minSuffixComponents) assert (i.maxSuffixComponents == i2.maxSuffixComponents) assert (i.publisherPublicKeyDigest == i2.publisherPublicKeyDigest) assert (i.exclude == i2.exclude) assert (i.childSelector == i2.childSelector) assert (i.scope == i2.scope) assert (i.interestLifetime == i2.interestLifetime)