Hi,

Thank you for the pull requests !

Unfortunately I cannot apply them.
GitHub says that he example cannot be merged for some reason. I solved this
by cloning your repo and copying it. So far so good.

The next problem is with the Wicket module - we do not have any rights on
the GitHub project (it is just a mirror of Apache Git repo) so there is no
way to merge it there. I've downloaded the patch from
https://github.com/apache/wicket/pull/24.patch but it doesn't apply
cleanly. It seems you used an old version of Wicket. Can you rebase it
against current master ?



On Wed, Dec 5, 2012 at 5:41 PM, Juha Syrjälä <[email protected]> wrote:

> Hi,
>
> I made an example application for this feature:
>
> https://github.com/martin-g/**blogs/pull/3<https://github.com/martin-g/blogs/pull/3>
>
> The latest version of the feature is here: https://github.com/apache/**
> wicket/pull/24 <https://github.com/apache/wicket/pull/24>
>
> --
> Juha Syrjälä
>
>
>
> On 10/24/2012 11:28 AM, Martin Grigorov wrote:
>
>> Hi,
>>
>> Thanks for your patch!
>> I'll take a look at it soon.
>> In the meantime do you want to provide a Pull Request with a demo of
>> the new functionality for
>> https://github.com/martin-g/**blogs/tree/master/wicket6-**
>> native-websockets<https://github.com/martin-g/blogs/tree/master/wicket6-native-websockets>
>> ?
>>
>> On Mon, Oct 22, 2012 at 10:37 PM, Mikko Tiihonen
>> <mikko.tiihonen@**nitorcreations.com <[email protected]>>
>> wrote:
>>
>>> Hi,
>>>
>>> Few weeks ago I created a patch that provides a way to push convert
>>> external
>>> events into wicket events that allow components to update themselves and
>>> push the results back to all browsers that have open websocket
>>> connection to
>>> the wicket application.
>>>
>>> I put the first version of the patch here
>>> https://issues.apache.org/**jira/browse/WICKET-4832<https://issues.apache.org/jira/browse/WICKET-4832>
>>>
>>> The API is pretty simple:
>>>
>>> Pass reference to wicket application to any non-wicket thread:
>>>    WebSocketPushBroadcaster pusher = new WebSocketPushBroadcaster();
>>>    pusher.broadcastAll(**applicationRef, new ExternalSourcePush("pass
>>> relevant
>>> data to components"));
>>> where
>>>    static class ExternalSourcePush implements IWebSocketPushMessage {
>>> ... }
>>>
>>> The wicket components that have active websocket connections will then
>>> receive a normal wicket websocket event:
>>>
>>>    public void onEvent(IEvent<?> event) {
>>>      if (event.getPayload() instanceof WebSocketPushPayload) {
>>>        WebSocketPushPayload wsEvent = (WebSocketPushPayload)
>>> event.getPayload();
>>>        ExternalSourcePush data = (ExternalSourcePush)
>>> wsEvent.getMessage()
>>>
>>>        label.setDefaultModelObject(**data.message);
>>>        wsEvent.getHandler().add(**label);
>>>      }
>>>    }
>>>
>>> Alternatively you can just pass a specific wicket websocket
>>> ConnectionMessage and use that as a context to send the events to.
>>>
>>> ---
>>> TODO items:
>>>
>>> 1) I was trying to add a Class<? extends Page> filter to the broadcastAll
>>> first so that I could get only the relevant websocket connections from
>>> the
>>> registry and not all pages need to be touched. In that case websocket
>>> registry would need to be updated to keep track of also page classes, not
>>> just their pageId, or is there a easy way to map from pageId to page
>>> class?
>>> Or do you think the broadcastAll that loops through all active websocket
>>> connections is not too heavy?
>>>
>>> 2) testing framework
>>>
>>> -Mikko
>>>
>>
>>
>>
>>
>


-- 
Martin Grigorov
jWeekend
Training, Consulting, Development
http://jWeekend.com <http://jweekend.com/>

Reply via email to