danieleteti / delphistompclient

STOMP client for Embarcadero Delphi and FreePascal.
141 stars 64 forks source link

Connection recovery #28

Open Mikanoshi opened 6 years ago

Mikanoshi commented 6 years ago

How to reconnect after the connection loss? StompClient doesn't do this automatically. Heartbeat is enabled, it throws "10057 Socket is not connected" when encounters a problem and changes Connected to false, but nothing else happens. If I add this

if not lClient.Connected then lClient.Connect;

then there is a socket error 10054 Connection reset by peer (if network was down) or 10061 Connection Refused (if I killed connection using firewall's tool). Also tried lClient.Disconnect before connecting and even lClient := lClient.Clone;, same results.

danieleteti commented 6 years ago

What's the problem? If you cannot connect and try to connect, an exception is raised. What should be a better option? May be I misunderstanding the problem.

Mikanoshi commented 6 years ago

It does not connect at all after the network problems, keeps throwing different exceptions. Only restarting program helps.