Hi James,

The `OnWebSocketClose` will always be called for a WebSocket connection.
However there are two reasons could be called and this determines whether
`OnWebSocketError` is called before or after `OnWebSocketClose`.

1. You have just received a CLOSE frame and may now send a close response
(this will be done automatically by the implementation if you do not do
it). In this case `session.isOpen()` will return true. `OnWebSocketError`
may be called after this if there is an error sending the CLOSE response
frame.

2. The connection has been closed, if there was an error then `onError`
will have been called directly before this.

So you should have your cleanup code in `OnWebSocketClose`, because it will
always be called.
But note that in case 1 the connection is still output open during the
`OnWebSocketClose` event.

On Tue, Sep 12, 2023 at 12:23 AM James Reeves via jetty-users <
[email protected]> wrote:

> Hi,
>
> I'm using the Jetty WebSocket API (for Jetty 11, if that makes a
> difference). I'm looking at the documentation for the OnWebSocketError
> event, and it says that this will close the session. However, I'm unable to
> find out whether this will in turn trigger the OnWebSocketClose event.
>
> Essentially I want to know if I can put cleanup code under the
> OnWebSocketClose event, or if I have to also put it under OnWebSocketError
> to guarantee it executes if the websocket closes due to an error.
>
> --
> James Reeves
>
>
> _______________________________________________
> jetty-users mailing list
> [email protected]
> To unsubscribe from this list, visit
> https://www.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
[email protected]
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/jetty-users

Reply via email to