2017-09-17 3 views
0

PubNubで始まったばかりで、最も簡単なシナリオでさえ理解できません。最新のChromeとクリックするとPubNubは何度も1つのメッセージを受信し続けています

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://cdn.pubnub.com/sdk/javascript/pubnub.4.15.1.js"></script> 
<script> 
const pubnub = new PubNub({ 
    publishKey : '<guid>', 
    subscribeKey : '<one more guid>' 
}); 
pubnub.subscribe({channels: ['3']}); 
pubnub.addListener({ 
    message: v => { 
    console.log("on message", v); 
    }, 
}); 
function onClick() { 
    pubnub.publish({channel: '3', message: 'foo'}); 
} 
</script> 
</head> 
<body> 
<button onclick="onClick()">start</button> 
</body> 
</html> 

オープニングには「スタート」ボタンは、テストメッセージが何度も際限なく受信されているになります:私は、次のテストページを作成しました。私は、単一のクライアントがバスからメッセージを受け取った後、このクライアントは再びそれを受け取らないという印象を受けました。なぜそのような行動ですか?私はallの文書を読むことができると理解しています。おそらく答えはどこか深いところですが、チュートリアル+クイックスタートは手がかりを与えず、残りの文書は非常に巨大です。

enter image description here

答えて

1

あなたのコード例では、私のために完璧に動作します。公開されたメッセージは、チャネル「3」で1回受信されます。これを検証する1つの方法は、PubNubコンソールを同時に開くことです(https://www.pubnub.com/docs/console)。チャネル "3"とともに、パブリッシュとサブスクライブのキーをコンソールに入力してください。 PubNub Consoleの「Subscribe」ボタンをクリックすると、テストページの「start」ボタンをクリックするたびに、下の「messages」セクションにテストメッセージ「foo」が一度表示されます。

+0

を表示するために添付のリンクを見てください、私はトッドと同じ結果を得ました。あなたはMS Edgeを使用しています(試したことはありません)ので、ChromeやFireboxを試してみて、それらの結果が同じか異なるかどうかをお知らせください。 –

+0

最新のChromeを使用しています。私のスクリーンショットに表示されます。なぜエッジ? @CraigConover – grigoryvp

+0

ああ、nm、あなたのパスで見た* edge *と何らかの理由でEdgeブラウザを想定していました。だから我々はここで何が起こっているのか分からない。これを予期しないものとし、再現することができないため、これを引き起こす他の外部の俳優がいなければなりません。あなたがPNサポートに提出したことがわかります。あなたが上記と100%同じであることが確かであっても、そのチケットに完全なソースファイルを添付できますか?どうもありがとう! –

1

私はあなたが最新のSDK-JS V4(完璧な出発点)

  • あなたのコードが動作を使用していることがわかります!

私は、PubNubを初期化したり、いくつかの機能を提供するための少しの違いを指摘したいと思います。単一のメッセージ -

が(自分のドキュメントで利用可能である)

PubNub demo

<script type="text/javascript"> 
     console.log('init PubNub.');  
     pubnub = new PubNub({ 
     publishKey: 'demo', 
     subscribeKey: 'demo', 
     uuid: 'myDemo' 
     }) 

     console.log("addListener.."); 
     pubnub.addListener({ 
     status: function(statusEvent) { 
      if (statusEvent.category === "PNConnectedCategory") { 
      console.log("PNConnectedCategory.."); 
      publishSampleMessage(); 
      } 
     }, 
     message: function(message) { 
      console.log("New Message!!", message.message);   
     }, 
     presence: function(presenceEvent) { 
      //handle presence 
     } 
     }) 

     console.log("Subscribing.."); 
     pubnub.subscribe({ 
     channels: ['myDemo'] 
     }); 

     function publishSampleMessage() { 
     console.log("Since we're publishing on subscribe connectEvent, we're sure we'll receive the following publish."); 
     var publishConfig = { 
      channel: "myDemo", 
      message: "I'm here, I'm alive!!" 
     } 
     pubnub.publish(publishConfig, function(status, response) { 
      console.log(status, response); 
     }) 
     } 

    function onClick() { 
     publishSampleMessage(); 
    } 

    </script> 
関連する問題