Pubnub python 4 sdk

Я только начал пользоваться pubnub. Я ввел базовый код, который был дан в pubnub python sdk (4.0), и получаю следующие ошибки

ERROR:pubnub:Async request Exception. 'Publish' object has no attribute 'async' ERROR:pubnub:Exception in subscribe loop: 'Publish' object has no attribute 'async' WARNING:pubnub:reconnection policy is disabled, please handle reconnection manually.

Что касается async(), существует средство устранения неполадок, в котором асинхронную ошибку можно решить, введя следующие

def callback(result, status):
    if status.is_error():
        print("Error %s" % str(status.error_data.exception))
        print("Error category #%d" % status.category)
    else:
        print(str(result))\

но все равно это не работает.

Это код

 from pubnub.callbacks import SubscribeCallback

 from pubnub.enums import PNStatusCategory

 from pubnub.pnconfiguration import PNConfiguration

 from pubnub.pubnub import PubNub

 pnconfig = PNConfiguration()

 pnconfig.subscribe_key = 'demo'
 pnconfig.publish_key = 'demo'

 pubnub = PubNub(pnconfig)


def my_publish_callback(envelope, status):
      # Check whether request successfully completed or not
      if not status.is_error():
          pass  # Message successfully published to specified channel.
      else:
          pass  # Handle message publish error. Check 'category' property to find out possible issue
    # because of which request did fail.
    # Request can be resent using: [status retry];


 class MySubscribeCallback(SubscribeCallback):
      def presence(self, pubnub, presence):
          pass  # handle incoming presence data

      def status(self, pubnub, status):
        if status.category == PNStatusCategory.PNUnexpectedDisconnectCategory:
           pass  # This event happens when radio / connectivity is lost

    elif status.category == PNStatusCategory.PNConnectedCategory:
        # Connect event. You can do stuff like publish, and know you'll get it.
        # Or just use the connected event to confirm you are subscribed for
        # UI / internal notifications, etc
        pubnub.publish().channel("awesomeChannel").message("hello!!").async(my_publish_callback)
        elif status.category == PNStatusCategory.PNReconnectedCategory:
           pass
        # Happens as part of our regular operation. This event happens when
        # radio / connectivity is lost, then regained.
        elif status.category == PNStatusCategory.PNDecryptionErrorCategory:
        pass
        # Handle message decryption error. Probably client configured to
        # encrypt messages and on live data feed it received plain text.

def message(self, pubnub, message):
    pass  # Handle new message stored in message.message


pubnub.add_listener(MySubscribeCallback())
pubnub.subscribe().channels('awesomeChannel').execute()

Вы используете Python v3.7? Я говорю о самом Python, а не о PubNub Python SDK. Если нет, попробуйте обновиться до этого. А последний SDK для PubNub Python?

Craig Conover 12.10.2018 04:51

добились ли вы каких-либо успехов на основе моих предложений? При необходимости отправьте запрос на Поддержка PubNub и включите эту ссылку SO, чтобы мы могли отправить ответ с ответом.

Craig Conover 14.10.2018 16:54
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
2
407
1

Ответы 1

Поскольку ошибка связана с методом публикации, скорее всего, это может быть потому, что async был заменен на pn_async

Обратите внимание, что на сегодняшний день это применимо только для Python3, так как это не было реализовано для Python 2.

Изменять

pubnub.publish().channel("awesomeChannel").message("hello!!").async(my_publish_callback)

к

pubnub.publish().channel("awesomeChannel").message("hello!!").pn_async(my_publish_callback)

Справочный документ здесь

Другие вопросы по теме