#node.js #socket.io #webrtc #pubnub
#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 и не получит никаких событий SocketIO от 2 одноранговых узлов, пытающихся подключиться друг к другу. Я пытаюсь использовать pubnub с SocketIO для отправки кандидатов ice для создания p2p-видео через WebRTC
Для одноранговых узлов, которые пытаются подключиться, у которых на самом деле работает соединение 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:
@jerryfox, при подписке происходит обратный вызов соединения под названием «connect». Вы должны публиковать тестовую публикацию только при этом обратном вызове «connect» … в противном случае вы можете опубликовать до фактического подключения, и вы никогда не увидите сообщение. Попробуйте это:
pubnub.subscribe({
channel: 'my_channel',
callback: function(message) {
console.log("Message received: ", message);
},
connect: publish
});
Если у вас все еще возникают проблемы, свяжитесь с нами по адресу support@pubnub.com , и мы поможем решить эту проблему за вас.
Комментарии:
1. Спасибо! Кажется, моя проблема была в чем-то совершенно другом, из-за проблем с сервером / клиентом pubnub