I will, and thanks for your feedback:) I have some idea that for most users we can simplify it a bit, I will come back when I have something more than just the idea of it.
Thinking about it, websocket technology will require more of the backend, because of its nature.. For Jetty 9.3.x I will need to use this filter org.apache.wicket.protocol.ws.javax.JavaxWebSocketFilter correct? On Thu, Aug 17, 2017 at 10:05 AM, Martin Grigorov <mgrigo...@apache.org> wrote: > On Thu, Aug 17, 2017 at 10:51 AM, nino martinez wael < > nino.martinez.w...@gmail.com> wrote: > > > so in it's simplest form my page would look like this: > > > > > > final MarkupContainer anotherComponent = add(new > > Label("anotherComponent", "Updating should be pushed")); > > > > anotherComponent.add( > > new WebSocketBehavior() { > > @Override > > protected void onPush(WebSocketRequestHandler handler, > > IWebSocketPushMessage message) { > > super.onPush(handler, message); > > handler.add(anotherComponent); > > } > > > > > > }); > > > > > > } > > > > > > And will get anotherComponent refreshed with every WebsocketPushes.. > > It would be nice if there were a simple filter or way to determine if > > the websocket push were relevant for the actually push.. > > > > The current implementation does feel a little lowlevel.. > > > > IWebSocketPushMessage is an interface, so to broadcast it you need to > create a concrete impl class. > Then in #onPush() you can check the type and decide what to do. > > I have the feeling that you didn't even test it yet. > Please play a bit with it and then come with more concrete suggestions! > > > > > > > > On Thu, Aug 17, 2017 at 9:36 AM, nino martinez wael < > > nino.martinez.w...@gmail.com> wrote: > > > > > Thanks Martin! Yes specially 2.2.x will probably be used a lot.. Would > be > > > great to have an sample for it.. I'll conjure one up for pax wicket.. > > > > > > On Thu, Aug 17, 2017 at 9:29 AM, Martin Grigorov < > > > martin.grigo...@gmail.com> wrote: > > > > > >> WebSocketBehavior has only callbacks. They have > > IPartialPageUpdateHandler > > >> as parameter (this is the base interface for AjaxRequestTarget and > > >> IWebSocketRequestHandler) which you can use to add components. > > >> > > >> There are two use cases: > > >> > > >> 1) the browser sends a message > > >> WebSocketBehavior#onMessage(Text|Binary, IPartialPageUpdateHandler) > is > > >> called and you can react on this message > > >> > > >> 2) the server pushes a message > > >> > > >> 2.1) simple case: broadcast plain text or byte[] > > >> > > >> WebSocketSettings webSocketSettings = WebSocketSettings.Holder.get( > > >> application); > > >> webSocketSettings.getConnectionRegistry().getConnection(app[, > > sessionId, > > >> pageIdKey]).sendMessage( text | binary ); > > >> > > >> 2.2) more complex case: update Wicket components > > >> > > >> here you need to broadcast IWebSocketPushMessage - this is a > > >> specialization > > >> of IWebSocketMessage that is used when you need to push from the > server > > to > > >> the client > > >> > > >> This code could be in any application service class: > > >> > > >> WebSocketSettings webSocketSettings = WebSocketSettings.Holder.get( > > >> application); > > >> WebSocketPushBroadcaster broadcaster = new WebSocketPushBroadcaster( > > >> webSocketSettings.getConnectionRegistry()); > > >> > > >> 2.2.1) to all connections: > > >> broadcaster.broadcastAll(application, message); > > >> > > >> 2.2.2) to specific client > > >> ConnectedMessage wsMessage = new ConnectedMessage(application, > > sessionId, > > >> pageIdKey); > > >> broadcaster.broadcast(wsMessage, message); > > >> > > >> > > >> Broadcasting IWebSocketPushMessage will call > WebSocketBehavior#onPush() > > >> where you can update any components > > >> > > >> We should add this to the guide! > > >> > > >> Martin > > >> > > >> On Aug 17, 2017 09:28, "nino martinez wael" < > > nino.martinez.w...@gmail.com > > >> > > > >> wrote: > > >> > > >> > But how do I then refresh the target from serverside? > > WebSocketBehavior > > >> > does not have an method that lets me get a target? > > >> > > > >> > On Thu, Aug 17, 2017 at 7:45 AM, Martin Grigorov < > > >> > martin.grigo...@gmail.com> > > >> > wrote: > > >> > > > >> > > Yes. > > >> > > The API is the same. > > >> > > > > >> > > On Aug 17, 2017 08:44, "nino martinez wael" < > > >> > nino.martinez.w...@gmail.com> > > >> > > wrote: > > >> > > > > >> > > > is there way to repaint an component like with ajax targets > > >> > > > (target.add(component))? > > >> > > > > > >> > > > On Wed, Aug 16, 2017 at 1:57 PM, nino martinez wael < > > >> > > > nino.martinez.w...@gmail.com> wrote: > > >> > > > > > >> > > > > I'snt there something more simple? > > >> > > > > > > >> > > > > On Wed, Aug 16, 2017 at 1:54 PM, Martin Grigorov < > > >> > mgrigo...@apache.org > > >> > > > > > >> > > > > wrote: > > >> > > > > > > >> > > > >> Use the examples as inspiration: > > >> > > > >> > > >> > > > >> http://examples8x.wicket.apache.org/websockets/ > > >> > > > >> https://github.com/apache/wicket/tree/master/wicket-examples > > >> > > > >> /src/main/java/org/apache/wicket/examples/websocket > > >> > > > >> > > >> > > > >> Martin Grigorov > > >> > > > >> Wicket Training and Consulting > > >> > > > >> https://twitter.com/mtgrigorov > > >> > > > >> > > >> > > > >> On Wed, Aug 16, 2017 at 2:52 PM, nino martinez wael < > > >> > > > >> nino.martinez.w...@gmail.com> wrote: > > >> > > > >> > > >> > > > >> > Hi > > >> > > > >> > > > >> > > > >> > I am looking into Wicket 8 and websockets using pax wicket, > > in > > >> my > > >> > > case > > >> > > > >> I am > > >> > > > >> > using jetty 9.3.14. I want to do a simple websocket > sample.. > > >> > > > >> > > > >> > > > >> > However I cannot find something as simple as > > >> > > > >> > a AjaxSelfUpdatingTimerBehavior as an websocket behavior.. > > >> > > > >> > > > >> > > > >> > So whats the simplest way todo a websocket example that > shows > > >> some > > >> > > > >> change > > >> > > > >> > at clientside? > > >> > > > >> > > > >> > > > >> > -- > > >> > > > >> > Best regards / Med venlig hilsen > > >> > > > >> > Nino Martinez > > >> > > > >> > > > >> > > > >> > > >> > > > > > > >> > > > > > > >> > > > > > > >> > > > > -- > > >> > > > > Best regards / Med venlig hilsen > > >> > > > > Nino Martinez > > >> > > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > -- > > >> > > > Best regards / Med venlig hilsen > > >> > > > Nino Martinez > > >> > > > > > >> > > > > >> > > > >> > > > >> > > > >> > -- > > >> > Best regards / Med venlig hilsen > > >> > Nino Martinez > > >> > > > >> > > > > > > > > > > > > -- > > > Best regards / Med venlig hilsen > > > Nino Martinez > > > > > > > > > > > -- > > Best regards / Med venlig hilsen > > Nino Martinez > > > -- Best regards / Med venlig hilsen Nino Martinez