2017-06-17 12 views
1

現在、javascript AWS Iot SDKを使用しています。 hereの例を適用して、私は自分のthingShadowに登録することができました。登録後にアップデートを公開しようとしています。AWS IoT SDKを使用して予約済みトピックに公開できません

cannot publish to reserved topic '$aws/things/<thingName>/shadow/update' 

が、私は「$」を理解し、これは予約済みの話題ですが、Amazonのドキュメントが業務をパブリッシュおよびサブスクライブ(http://docs.aws.amazon.com/iot/latest/developerguide/topics.html) 状態が許可されていることを示している:私はしかし、私は、次のエラーメッセージが表示されますこの予約されたトピック。そのような場合は、なぜ公開しようとするとエラーになるのかわかりません。このスニペットは、私は私の接続コールバックで公開しようとする方法を示しています。

shadows.register(<thingName>, { 
    persistentSubscribe: true 
},() => { 
    shadows.publish('$aws/things/<thingName>/shadow/update', <message>); 
}); 
+0

ばかげた質問をする危険性があるので、あなたは文字通り 'shadows.publish( '$ aws/things//shadow/update')に表示されているリテラル文字に' ' ); '...右か?ここに実際に有効なものがありますか? –

+0

@ Michael-sqlbotハハ、公正な質問。はい、私は現在、これらの文字列に有効なthingNameとmessageを使用しています。 –

答えて

1

私はあなたが予約トピックにパブリッシュするSDKのthing shadow classを使用していることがわかります。 SDKのソースコードを見ると、it is not possible to publish on a reserved topicはこのタイプのクライアントを使用しています。予約されたトピックの操作はすべて.register().update()で行われるためです。

ただし、device classを使用してthese reserved topicsに公開することはできます。

関連する問題