I'm using Ably to implement Pub/Sub in my application but I'm getting no errors but at the same time I'm not receiving any published messages. I'm not sure what's wrong. Help appreciated.
Here's my code:
//publisher
var Ably = require('ably');
var apiKey = '';
var ably = new Ably.Realtime({key: apiKey});
var pubChannel = ably.channels.get("sports");
setInterval(function(){
pubChannel.publish('update', {'Team': 'Man United'})
},1000)
//subscriber
var apiKey = '';
var ably = new Ably.Realtime({key: apiKey});
var subChannel = ably.channels.get("Sports");
subChannel.subscribe(function(msg){
document.getElementById('text').innerHTML = JSON.stringify(msg.data);
})
(disclaimer: I am a developer advocate for Ably, and posting and self-answering a commonly asked support question here on Stack Overflow so our users can find this more easily)
Here's what I found as a general debugging process:
First, make sure the channel you're publishing on is the same channel you're subscribing to. (Ably channel names are case-sensitive -- sports is a different channel to Sports).
Second, make sure you're using the same app everywhere (make sure you're not, say, publishing with an api key from your Sandbox app, but subscribing with an api key from your Production app)
Thirdly, you need to find out whether the problem is on the publishing or the subscribing side. Open the dev console, attach to the channel that you're publishing on, and try a publish. Do you see the message appear there (but still not on your subscribing device)? If yes, the problem is on the subscribing side. If no, the problem's on the publishing side.
Debugging publish problems
When you call channel#publish, you can pass a callback (or equivalent - select the language you're using from the language bar), which if the publish failed will tell you why.
Debugging subscribe problems
Check the connection state, make sure you're connected to Ably
Check the channel state, make sure you're attached to the channel
Make sure you've added a subscribe listener. If you added a listener for a specific event name, make sure you're publishing with the exact same event name