问题描述
我正在 Python 中测试 pubnub API,但在订阅回调函数中打印消息时遇到问题,该函数在出现新消息时触发。
在下面的代码中,收到的消息以某种方式排队并仅打印 当一些消息被发送后。一切都毫不拖延地执行, 只有实际打印延迟。
from pubnub.callbacks import SubscribeCallback
from pubnub.enums import PNStatusCategory
from pubnub.pnconfiguration import PNConfiguration
from pubnub.pubnub import PubNub
import pubnub
import os
import logging
CHANNEL = 'channel1'
USER = 'user'
pnconfig = PNConfiguration()
pnconfig.publish_key = ""
pnconfig.subscribe_key = ""
pnconfig.uuid = "serverUUID-PUB"
pnb = PubNub(pnconfig)
class ReceiverCallback(SubscribeCallback):
def message(self,pnb,event):
if event.message['text'] == 'exit':
os._exit(0)
print(logging.info(event.message['text'])) # this doesn't show
pnb.add_listener(ReceiverCallback())
pnb.subscribe().channels(CHANNEL).execute()
while True:
txt = input('')
pnb.publish().channel(CHANNEL).message({
'from': USER,'text': txt
}).sync()
print(txt) # this shows
如果我将 print
替换为 logging.warn
并在循环之前设置 pubnub.set_stream_logger('pubnub',logging.INFO,30)
,则消息显示为 ERROR:root:<message>
,
但同样不适用于 logging.info
和 logging.debug
显示额外
通过 API 的实现进行日志记录。
我不认为我从中获得代码的教程(基本相同)没有提到这一点。 我也没有发现其他地方提到了这个问题。
编辑:结果证明这只是在从 git bash 运行脚本时出现问题,而不是从例如空闲或 Powershell。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)