问题设置Pubnub Nodejs服务器

时间:2014-06-23 02:15:34

标签: node.js socket.io webrtc pubnub

以下示例: https://www.npmjs.org/package/pubnub

我正在尝试通过以下方式建立从nodejs服务器到pubnub的连接:

var pubnub  = require("pubnub").init({
    publish_key:    "pub key here",
    subscribe_key:  "sub key here",
    channel:        'my_channel',
    user:           'Server'
});  

pubnub.subscribe({
    channel: 'my_channel',
    callback: function(message) {
      console.log("Message received: ", message);
    }
});

pubnub.publish({ 
    channel   : 'my_channel',
    callback  : function(e) { console.log( "SUCCESS!", e ); },
    error     : function(e) { console.log( "FAILED! RETRY PUBLISH!", e ); }
});

// test msg to see if server connect to pubnub channel
function publish() {
  pubnub.publish({ 
    channel   : 'my_channel',
    message   : 'Server subscribed'
  });
}

我认为这遵循提供的示例,但我的服务器不会显示在pubnub日志中,也不会从2个尝试连接到彼此的对等端接收任何SocketIO事件。我正在尝试使用pubnub与SocketIO通过WebRTC发送冰候选人以建立p2p视频

对于尝试连接的对等实际上确实有一个pubnub连接工作,设置如下:

(function() {
  var pubnub_setup = {
    channel:       "my_channel",
    publish_key:   "pub key",
    subscribe_key: "sub key",
    user:          user
  };

  var socket = io.connect( 'http://pubsub.pubnub.com', pubnub_setup);

// various socket.on( ... )

})();

1 个答案:

答案 0 :(得分:0)

@jerryfox,在订阅上有一个名为“connect”的连接回调。您应该只在此“连接”回调上发布测试发布...否则,您可以在实际连接之前发布,并且您永远不会看到该消息。试试这个:

pubnub.subscribe({
    channel: 'my_channel',
    callback: function(message) {
    console.log("Message received: ", message);
    },
    connect: publish
});

如果您仍然遇到问题,请通过support@pubnub.com与我们联系,我们将帮助您解决问题。