ArduinoHttpClient icon indicating copy to clipboard operation
ArduinoHttpClient copied to clipboard

Reconnect websocket after server restarts?

Open mshulman opened this issue 4 years ago • 3 comments

I'm not sure how this is supposed to work. My code works as long as the server is up before the client attempt to connect. But if the server restarts or otherwise faults, I don't know how to make the code reconnect.

Here's what I'm doing

void setUpSubscription() {
    Serial.println("Setting up subscription");
    client.begin("/signalk/v1/stream?subscribe=none");
  
    while (!client.connected()) {
      delay(100);
      ; // wait to connect
    }
}

void loop() {
  setUpSubscription();
  while (client.connected()) {
     // do stuff
  }
  Serial.println("client disconnected");
}

The problem is that the client.begin() doesn't work on a disconnected socket (I think).

What's the right thing to do?

mshulman avatar Jul 25 '21 22:07 mshulman

have you implemented a Ping / Pong request ? maybe it could help you.

ddaydd avatar Jul 26 '21 14:07 ddaydd

ddaydd-

Is this something that is implemented on the server? If so, how would I know if the server I’m connecting to implements this?

mshulman avatar Jul 26 '21 15:07 mshulman

you have to implement it on the server and the client too. maybe this post can help you https://stackoverflow.com/a/50876880/2979191

what language is your server written in? my server is Meteor which already has ping pong logic ...

ddaydd avatar Jul 26 '21 15:07 ddaydd