-1

アプリケーションに Pub/Sub を実装するためにAlyを使用していますが、エラーは発生していませんが、同時に発行されたメッセージも受信していません。何が悪いのかわからない。助けていただければ幸いです。

これが私のコードです:

//publisher
var Ably = require('ably');
var apiKey = '';
var ably = new Ably.Realtime({key: apiKey});
var pubChannel = ably.channels.get("sports");
setInterval(function(){
    pubChannel.publish('update', {'Team': 'Man United'})
},1000)

//subscriber
var apiKey = '';
var ably = new Ably.Realtime({key: apiKey});
var subChannel = ably.channels.get("Sports");
subChannel.subscribe(function(msg){
    document.getElementById('text').innerHTML = JSON.stringify(msg.data);
})

(免責事項: 私は Aly の開発者支持者であり、ユーザーがより簡単に見つけられるように、スタック オーバーフローによく寄せられるサポートの質問を投稿して自己回答しています)

4

1 に答える 1

1

一般的なデバッグプロセスとして私が見つけたものは次のとおりです。

まず、公開しているチャンネルが購読しているチャンネルと同じであることを確認してください。(チャンネル名は大文字と小文字が区別されます。スポーツはスポーツとは別のチャンネルです)。

次に、どこでも同じアプリを使用していることを確認します (たとえば、Sandbox アプリから API キーを使用して発行するのではなく、Production アプリから API キーを使用してサブスクライブしていることを確認してください)。

第 3 に、問題がパブリッシング側にあるのかサブスクライブ側にあるのかを調べる必要があります。開発コンソールを開き、公開しているチャネルにアタッチして、公開を試みます。そこにメッセージが表示されますか (ただし、サブスクライブしているデバイスには表示されません)? はいの場合、問題はサブスクライブ側にあります。いいえの場合、問題は発行側にあります。

パブリッシュの問題のデバッグ

channel#publish を呼び出すと、コールバック (または同等のもの - 言語バーから使用している言語を選択) を渡すことができます。これにより、公開が失敗した場合に理由がわかります。

サブスクライブの問題のデバッグ

于 2018-04-05T16:26:37.747 に答える