send connected status on checkin

This commit is contained in:
Matthew R. Kasun
2022-09-08 06:19:10 -04:00
parent 0ade279ca7
commit 84e58d0d5a
4 changed files with 23 additions and 12 deletions

View File

@@ -123,7 +123,15 @@ func PublishNodeUpdate(nodeCfg *config.ClientConfig) error {
// Hello -- ping the broker to let server know node it's alive and well
func Hello(nodeCfg *config.ClientConfig) {
if err := publish(nodeCfg, fmt.Sprintf("ping/%s", nodeCfg.Node.ID), []byte(ncutils.Version), 0); err != nil {
var checkin models.NodeCheckin
checkin.Version = ncutils.Version
checkin.Connected = nodeCfg.Node.Connected
data, err := json.Marshal(checkin)
if err != nil {
logger.Log(0, "unable to marshal checkin data", err.Error())
return
}
if err := publish(nodeCfg, fmt.Sprintf("ping/%s", nodeCfg.Node.ID), data, 0); err != nil {
logger.Log(0, fmt.Sprintf("Network: %s error publishing ping, %v", nodeCfg.Node.Network, err))
logger.Log(0, "running pull on "+nodeCfg.Node.Network+" to reconnect")
_, err := Pull(nodeCfg.Node.Network, true)