Application Server heartbeat being ignored

I am writing a Python client to interface into Voyager’s Application Server. I can successfully connect and receive Voyager events, however, Voyager seems to be ignoring my heartbeat messages I send every 5 seconds. I have used Wire Shark to compare my heartbeat packet to Voyager’s and they are virtually identical except for a few spacing differences. Is there a way to see why Voyager is not accepting my heartbeat polling?

Here is the Voyager AS log:

Here is Wireshark capture of Voyager sending a polling heartbeat to my client:

And here is my heartbeat packet that I send to Voyager that seems to be ignored:

I would appreciate any tips.

Thanks,
Eric

Hello Eric,

this is a page for developer to test just the protocol string:
http://www.starkeeper.it/remote/index.html

Anyway from a quick analisys i dont found a terminator on your packet, all packets sended to Voyager Application Server must have a terminator chars 0d 0a (carriage return and line feed). You can found this in paragraph 4 and 5 of VoyagerAS.pdf (you can open from Resource Menù of Voyager) page 3 and 11.:
VoyagerAS.pdf (1.8 MB)

Generally if there is some error on parsing or similar you can found info in the default log of Voyager:
https://voyager.tourstar.net/index.php?title=Installation#Log_File

Let me know if this solve your problems.

All the best
LO

Thanks! I totally missed the CR LF requirements in the spec. My heartbeat routine is working now and here is the code snippet for building the JSON message in Python in case anyone else needs it:

heartbeat_data = {“Event”:“Polling”,“Timestamp”:time.time(),“Host”:socket.gethostname(),“Inst”:1}
j_data = json.dumps(heartbeat_data)
j_data = j_data + “\r\n”
j_data = j_data.encode(‘utf-8’)
s.sendall(j_data)

1 Like

Wonderful, thanks Eric.
Let me know if you need more help.

All the best
LO