只是想了解为什么我的pubnub javascript代码没有收到来自频道的消息。我可以订阅和发布,但如果另一个浏览器发送新的发布消息,则另一个浏览器无法接收该消息。继承我的代码:
$(document).ready(function () {
var pubnub = PUBNUB.init({
subscribe_key: 'subscribe-key-here',
publish_key: 'publish-key-here'
});
pubnub.subscribe({
channel : "my-channel",
message : function(m){ console.log(m) },
callback : function (message) { console.log("callback: ", message)},
connect : function() {
console.log("Connected")
pubnub.publish({
channel: 'my_channel',
message: { "color" : "blue" },
callback : function(details) {
console.log(details)
}
});
},
disconnect : function() { console.log("Disconnected") },
reconnect : function() { console.log("Reconnected") },
error : function() { console.log("Network Error") },
restore : true
})
});
这个代码在我的nodejs localhost服务器以及chrome和firefox浏览器上运行/测试的方式。
答案 0 :(得分:3)
Code Bug - 您的频道名称中有拼写错误:
subscribe
使用my_channel
publish
使用my-channel
此外,您在subscribe中使用的两个参数含义相同:message
是callback
的别名
对于您的publish,success
是callback
的别名(JavaScript/Node v3.7.20+),建议(仅因为它更有意义)。
我已从callback
中删除了subscribe
参数,并在下面的代码中将callback
替换为success
。
更正后的代码:
$(document).ready(function () {
var pubnub = PUBNUB.init({
subscribe_key: 'subscribe-key-here',
publish_key: 'publish-key-here'
});
pubnub.subscribe({
channel : "my_channel",
message : function (message) { console.log("callback: ", message)},
connect : function() {
console.log("Connected")
pubnub.publish({
channel: 'my_channel',
message: { "color" : "blue" },
success : function(details) {
console.log(details)
}
});
},
disconnect : function() { console.log("Disconnected") },
reconnect : function() { console.log("Reconnected") },
error : function() { console.log("Network Error") },
restore : true
})
});