2017-09-17 15 views
0

PubNub로 시작한 것으로, 가장 간단한 가능한 시나리오조차도 이해하지 못하는 것으로 보입니다. 최신 크롬과 클릭에PubNub는 계속 하나의 메시지를 계속 수신합니다

<!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"에서 한 번 수신됩니다. 이를 확인하는 한 가지 방법은 PubNub Console을 동시에 열어 보는 것입니다 (https://www.pubnub.com/docs/console). 채널 "3"과 함께 게시 및 구독 키를 콘솔에 입력하십시오. PubNub Console에서 "Subscribe"버튼을 클릭하면 테스트 페이지에서 "start"버튼을 누를 때마다 하단의 "messages"섹션에 테스트 메시지 "foo"가 한 번 표시됩니다.

+0

PubNub demo 내가 가진 동일한 결과를 볼 수 첨부 된 링크를보고하십시오 - 하나의 메시지를. MS Edge를 사용하고 있습니다 (시도하지 않으 셨음). 그래서 Chrome과 Firebox를 사용해 보시고 동일하거나 다른 결과를 얻었 으면 알려주십시오. –

+0

최신 Chrome을 사용하고 있습니다. 내 스크린 샷에 표시됩니다. 왜 가장자리인가? @CraigConover – grigoryvp

+0

아, nm, 너의 경로에서 * edge *를 보았는데 어떤 이유로 Edge 브라우저를 사용했다. 그래서 우리는 여기서 무슨 일이 일어나고 있는지 확신 할 수 없습니다. 다른 외부 배우가 있어야만 예상대로 재생되지 않으며 재생산 할 수 없습니다. PN 지원서를 제출했음을 확인합니다. 위와 같은 100 % 확신이 있다고하더라도 전체 소스 파일을 해당 티켓에 첨부 할 수 있습니까? 많은 감사합니다! –

1

난 당신이 최신 SDK-JS V4 (완벽한 출발점)

  • 귀하의 코드가 작동을 사용하고있는 것을 볼 수 있습니다!

저는 PubNub 초기화와 몇 가지 기능에 약간의 차이점을 지적하고 싶습니다. (자신의 문서에서 사용할 수 있습니다)

토드로 내

<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>