Heartbeat not working

This is my and my organization’s first Elixir / Phoenix project so far. I have been able to set up a working prototype and got the green light to turn it into a full product. The only thing so far I haven’t been able to solve myself is the fact that the (iOS, Android and Web) clients send heartbeat but Phoenix doesn’t seem to do anything with it.

[warn] Ignoring unmatched topic "heartbeat" in MyApplication.UserSocket

Most documents that mention heartbeat mention it like a feature that’s just there. Also there’s some code in transport.ex that seems to take care of it. However I’m getting that warning and the clients drop after around 60 seconds.

what client code/libraries are you using?

from that error it seems like your client is trying to connect to a “heartbeat” channel, which isn’t quite normal… (afaik - the heartbeat goes in a “phoenix” channel - but your client lib should handle it all…)

For Swift I’m using SwiftPhoenixClient. Seeing this in my output:

socket received: {"topic":"heartbeat","ref":"3B151654-07A0-4BED-9C09-27F5881B6118","payload":{"status":"error","response":{"reason":"unmatched topic"}},"join_ref":null,"event":"phx_reply"} Phoenix Response: ref:"3B151654-07A0-4BED-9C09-27F5881B6118", event:"phx_reply", topic:"heartbeat", payload:["status": error, "response": { reason = "unmatched topic"; }]

There’s also https://github.com/sjrmanning/Birdsong for swift which doesn’t have this particular error …

is it also the js client? or only the swift one? (that breaks)

I just compared to be sure. But Birdsong isn’t super actively updated while SwiftPhoenixClient is. I’m trying to update SwiftPhoenixClient now, it was a while since I updated it.

There isn’t much to a phoenix channel client. phoenix.js isn’t often updated either … As for the SwiftPhoenixClient, it was abandoned before someone else picked it up and started rewriting it.

I notice. There’s a ton of API changed. Have to rewrite my code and try again.

OK guys we can wrap it. A newer version works great. So it was sending the wrong message all of the time.

@idi527 thanks for the hint, luckily the library is maintained.

1 Like