Я только начал пользоваться 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()
добились ли вы каких-либо успехов на основе моих предложений? При необходимости отправьте запрос на Поддержка PubNub и включите эту ссылку SO, чтобы мы могли отправить ответ с ответом.





Поскольку ошибка связана с методом публикации, скорее всего, это может быть потому, что
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)
Вы используете Python v3.7? Я говорю о самом Python, а не о PubNub Python SDK. Если нет, попробуйте обновиться до этого. А последний SDK для PubNub Python?