我有两部分python独立应用程序:发布者和订阅者。
发布者生成虚假的JSON设备对象,并将其发布在名为" devices。"正如您所猜测的那样,订阅者订阅了频道"设备。"
(另外,给定可选的命令行参数,发布者或订阅者可以将JSON对象写入套接字或本地目录,其中Apache Spark Streaming上下文拾取JSON对象并对其进行处理。目前,这不在图片中,因为它是可选的。)
但是,我的问题是当我的订阅者运行时,在发布者完成后,我得到了“错误:禁止"。
以下是发布商的相应python代码段:
pubnub = Pubnub(publish_key="my_key", subscribe_key="my_key")
....
pubnub.publish(ch, device_msg)
在订阅者python文件中,我有以下初始化代码:
def receive(message, channel):
json.dumps(message)
def on_error(message):
print ("ERROR: " + str(message))
....
pubnub = Pubnub(publish_key="my_keys", subscribe_key="my_keys")
# subscribe to a channel and invoke the appropriate callback when a message arrives on that
# channel
#
pubnub.subscribe(channels=ch, callback=receive, error=on_error)
pubnub.start()
虽然发布者在运行时似乎在循环中发布了所有120个JSON消息,而订阅者在运行时似乎失败并显示以下错误消息:
ERROR: Forbidden
我尝试使用" demo"钥匙没有任何区别。请注意,我正在使用PubNub的试用帐户。
由于这是我使用其API的第一个应用程序之一,之前有人见过这个问题。当然,这里有一些非常明显或微不足道的东西。
答案 0 :(得分:0)
答案是发布/子密钥存在复制/粘贴错误。