Как получить результат pubnub.time () при вызове? Это определенно связано с тем, что я не совсем хорошо знаю Python ...
Я пытаюсь вызвать pubnub.time (), чтобы проверить, когда сетевое соединение восстанавливается, чтобы pubnub мог восстановить соединение, и я могу повторно подписаться на нужный канал. Я не могу получить желаемый результат. Согласно документам pubnub , time () имеет 3 метода, которые будут возвращать int, string или date.
envelope = pubnub.time()
envelope.int() outputs error
envelope.str() outputs error
envelope.date_time() outputs error
Единственное, что я могу заставить работать - это print(envelope)
, что дает <pubnub.endpoints.time.Time object at 0x75fb8f50>
.
Я не буду вдаваться в подробности того, сколько раз я пытался это сделать, и буду просить о помощи.
UPDATE
У нас есть пара удаленных систем, которые мы хотим использовать PubNub для сбора точек данных с оборудования, подключенного к машине. Будут поступать запросы данных, и PubNub должен отвечать на запросы. Наша главная проблема заключается в том, что в этих удаленных расположениях очень ненадежный DSL, который отключается от нескольких часов до нескольких дней, и пока наше приложение python все еще работает, PubNub не подключается повторно. Попытка повторного соединения_политией с LINEAR и EXPONENTIAL не удается повторно подключиться после отключения интернета. Небольшие короткие перебои восстановятся. Помимо этого, PubNub отлично работает для этой установки.
Вот мой установочный конфиг
pnconfig = PNConfiguration()
pnconfig.subscribe_key = 'sub'
pnconfig.publish_key = 'pub'
pnconfig.reconnect_policy = 'PNReconnectionPolicy.EXPONENTIAL'
pnconfig.daemon = True
pnconfig.ssl = True
Вот наш обратный звонок для подписки:
class MySubscribeCallback(SubscribeCallback):
def presence(self, pubnub, presence):
pass
def status(self, pubnub, status):
if status.is_error():
logger.error("PN Error" + str(status.error_data.exception))
if status.category ==
PNStatusCategory.PNUnexpectedDisconnectCategory:
logger.error("PN Unexpected Disconnect")
pubnub.reconnect()
pass
elif status.category == PNStatusCategory.PNConnectedCategory:
logger.info("PN Connected")
elif status.category == PNStatusCategory.PNReconnectedCategory:
logger.warning("PN Re-Connected")
pubnub.subscribe().channels('devChannel').execute()
pass
elif status.category == PNStatusCategory.PNDecryptionErrorCategory:
logger.error("PN Decryption Error")
pass