The attached patch provides a way to do push events outside of wicket.
Current native websocket support only allows pushing wicket components to browser as a response to ajax or websocket message. With this feature it is possible to push external event for processing in wicket context so that wicket code can normally update components, which are then pushed over websocket connection to the browser.
The new api in WebSocketPushBroadcaster can be used in two ways:
a) push to specific websocket connection
b) broadcast push to all websockets connected to specific Page
When either is invoked:
1) a new wicket context is created
2) a new wicket event with a IWebSocketPushMessage is broadcast to relevant components
3) the components are added to the event
4) the modified components are pushed to browser over websocket connection