Hi Thanks for the info. I tried to upgrade but there were too may dependencies so I am forced to work with the current version ( 9.2.15 ). I will plan for an upgrade soon - but will have to resolve this issue before that.
The behaviour that I am noticing is that when I do a sendPing ( after disconnecting the network ) , it does not throw an exception and also the onClose and onError events are not fired immediately. However I seem to get an onClose after about 15 minutes and subsequent pings fail immediately . The idleTimeOut is much higher than 15 minutes. I am not able to understand what is happening. Is it possible to make it fail earlier ? I also tried sendString with and without callback. Even the sendString did not call the errorCallback ( immediately went to success call back ). I need to know of the network failure within 30 sec to 1 min. Is there anything else I can do to get this info ? Regards Venkat On Thu, Jun 8, 2017 at 9:46 PM, Joakim Erdfelt <[email protected]> wrote: > Upgrade to Jetty 9.4 (seriously) > > I would have expected for the java client, when a connection issue is > detected, either the onClose or onError should occur. > But if the connection is truely unused, then there wont be a detected > issue on java until a read or write operation is attempted. > Hence your ping/pong step (to trigger a read or write). > > - Joakim > > Joakim Erdfelt / [email protected] > > On Thu, Jun 8, 2017 at 8:52 AM, Venkateswarlu Marripudi < > [email protected]> wrote: > >> Hi, >> >> We have implemented a Jetty OSGI WebSocket Client that talks to a Jetty >> WebSocket Server. Version of the server and client is 9.2 . We have >> implemented WebSocketListener at the client side. >> >> The client after establishing a connection waits for notifications from >> server - so if there is any connection failure it has to reconnect as soon >> as possible. When we have a network error , the onClose or onError methods >> are not invoked - realized that this is as per specification after checking >> in this forum and other places. >> >> I then attempted to send periodic heartbeats using >> session.getRemote().setPing method. Even this method did not throw an >> exception ( or cause onError to be invoked ) when the network was >> disconnected. I am now planning to set a timer and then listen for the pong >> message , and if the pong does not arrive in reasonable time, infer that >> the connection is broken and re-establish it. >> >> Is this the correct approach ? Also since we are using jetty 9.2 the >> WebSocketPingPongListener interface is not there - what is the best way to >> receive the pong message in the client side ? >> >> Regards >> Venkat >> >> _______________________________________________ >> jetty-users mailing list >> [email protected] >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://dev.eclipse.org/mailman/listinfo/jetty-users >> > > > _______________________________________________ > jetty-users mailing list > [email protected] > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/jetty-users >
_______________________________________________ jetty-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/jetty-users
