WebSockets: page deserialisation on close (performance issue?)
Hi, We are using web sockets (with wicket-native-core) on many pages in our application. After upgrade a Jetty from 9.4.12.v20180830 to a newer version 9.4.18.v20190429, I have found a different behaviour in application: When user navigates to another page, a websocket connection is closed and AbstractWebSocketProcessor.onClose method is called. This causes broadcasting a message to connected page: broadcastMessage(new ClosedMessage(getApplication(), getSessionId(), key)); and leads to page deserialisation (from PageStore). I think something was changed in a new version of Jetty, because in the previous used version this was not called. Maybe because of this: https://github.com/eclipse/jetty.project/issues/3835 https://github.com/eclipse/jetty.project/commit/2383bf4974ba7d82109cedfc4a8e7693d106abf0 I believe that now it works correctly (as was designed) and onClose should be called. But I wonder how it can affect performance: almost every page navigation causes page deserialization (when it should occur only for back button or when some web socket message comes and application need to process it). Maybe this message should be send only when needed or maybe I should not care and current behaviour does not affect performance? -- Best regards, Daniel Stoch - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: WebSockets: page deserialisation on close (performance issue?)
Correction to my previous message (I have debugged this more precisely): AbstractWebSocketProcessor.onClose method is called in both Jetty versions (not only in a newer one). The difference is in connection: - in Jetty 9.4.12.v20180830 connection is closed - in Jetty 9.4.18.v20190429 connection is still open So message is broadcasted only in a newer version. -- Daniel On Thu, Aug 1, 2019 at 10:25 AM Daniel Stoch wrote: > > Hi, > > We are using web sockets (with wicket-native-core) on many pages in > our application. After upgrade a Jetty from 9.4.12.v20180830 to a > newer version 9.4.18.v20190429, I have found a different behaviour in > application: > > When user navigates to another page, a websocket connection is closed > and AbstractWebSocketProcessor.onClose method is called. This causes > broadcasting a message to connected page: > > broadcastMessage(new ClosedMessage(getApplication(), getSessionId(), key)); > > and leads to page deserialisation (from PageStore). > I think something was changed in a new version of Jetty, because in > the previous used version this was not called. Maybe because of this: > https://github.com/eclipse/jetty.project/issues/3835 > https://github.com/eclipse/jetty.project/commit/2383bf4974ba7d82109cedfc4a8e7693d106abf0 > > I believe that now it works correctly (as was designed) and onClose > should be called. But I wonder how it can affect performance: almost > every page navigation causes page deserialization (when it should > occur only for back button or when some web socket message comes and > application need to process it). > > Maybe this message should be send only when needed or maybe I should > not care and current behaviour does not affect performance? > > -- > Best regards, > Daniel Stoch - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: WebSockets: page deserialisation on close (performance issue?)
Hi Daniel, can you create a quickstart and attach it to a Jura issue please? Thanks Sven On 01.08.19 10:57, Daniel Stoch wrote: Correction to my previous message (I have debugged this more precisely): AbstractWebSocketProcessor.onClose method is called in both Jetty versions (not only in a newer one). The difference is in connection: - in Jetty 9.4.12.v20180830 connection is closed - in Jetty 9.4.18.v20190429 connection is still open So message is broadcasted only in a newer version. -- Daniel On Thu, Aug 1, 2019 at 10:25 AM Daniel Stoch wrote: Hi, We are using web sockets (with wicket-native-core) on many pages in our application. After upgrade a Jetty from 9.4.12.v20180830 to a newer version 9.4.18.v20190429, I have found a different behaviour in application: When user navigates to another page, a websocket connection is closed and AbstractWebSocketProcessor.onClose method is called. This causes broadcasting a message to connected page: broadcastMessage(new ClosedMessage(getApplication(), getSessionId(), key)); and leads to page deserialisation (from PageStore). I think something was changed in a new version of Jetty, because in the previous used version this was not called. Maybe because of this: https://github.com/eclipse/jetty.project/issues/3835 https://github.com/eclipse/jetty.project/commit/2383bf4974ba7d82109cedfc4a8e7693d106abf0 I believe that now it works correctly (as was designed) and onClose should be called. But I wonder how it can affect performance: almost every page navigation causes page deserialization (when it should occur only for back button or when some web socket message comes and application need to process it). Maybe this message should be send only when needed or maybe I should not care and current behaviour does not affect performance? -- Best regards, Daniel Stoch - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: WebSockets: page deserialisation on close (performance issue?)
Hi, Thanks for your answer. I have created a JIRA issue with Quickstart: https://issues.apache.org/jira/browse/WICKET-6692 -- Daniel On Sat, Aug 3, 2019 at 10:05 PM Sven Meier wrote: > > Hi Daniel, > > can you create a quickstart and attach it to a Jura issue please? > > Thanks > Sven > > On 01.08.19 10:57, Daniel Stoch wrote: > > Correction to my previous message (I have debugged this more precisely): > > > > AbstractWebSocketProcessor.onClose method is called in both Jetty > > versions (not only in a newer one). > > The difference is in connection: > > - in Jetty 9.4.12.v20180830 connection is closed > > - in Jetty 9.4.18.v20190429 connection is still open > > > > So message is broadcasted only in a newer version. > > > > -- > > Daniel > > > > On Thu, Aug 1, 2019 at 10:25 AM Daniel Stoch wrote: > >> Hi, > >> > >> We are using web sockets (with wicket-native-core) on many pages in > >> our application. After upgrade a Jetty from 9.4.12.v20180830 to a > >> newer version 9.4.18.v20190429, I have found a different behaviour in > >> application: > >> > >> When user navigates to another page, a websocket connection is closed > >> and AbstractWebSocketProcessor.onClose method is called. This causes > >> broadcasting a message to connected page: > >> > >>broadcastMessage(new ClosedMessage(getApplication(), getSessionId(), > >> key)); > >> > >> and leads to page deserialisation (from PageStore). > >> I think something was changed in a new version of Jetty, because in > >> the previous used version this was not called. Maybe because of this: > >> https://github.com/eclipse/jetty.project/issues/3835 > >> https://github.com/eclipse/jetty.project/commit/2383bf4974ba7d82109cedfc4a8e7693d106abf0 > >> > >> I believe that now it works correctly (as was designed) and onClose > >> should be called. But I wonder how it can affect performance: almost > >> every page navigation causes page deserialization (when it should > >> occur only for back button or when some web socket message comes and > >> application need to process it). > >> > >> Maybe this message should be send only when needed or maybe I should > >> not care and current behaviour does not affect performance? > >> > >> -- > >> Best regards, > >> Daniel Stoch > > - > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > - > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org