Dan Haywood updated ISIS-1176:
    Fix Version/s:     (was: 2.4.0)

> Provide the capability to push notification messages to end-users without 
> refreshing (using web sockets or Atmosphere etc).
> ---------------------------------------------------------------------------------------------------------------------------
>                 Key: ISIS-1176
>                 URL: https://issues.apache.org/jira/browse/ISIS-1176
>             Project: Isis
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: core-1.8.0
>            Reporter: Dan Haywood
>            Priority: Minor
>             Fix For: 2.1.0
> For example, if an end-user submits a long-running job, then the action 
> should acknowledge the request.  When the job completes then we should 
> provide a mechanism to notify the user (if they are using the system).
> ~~~~~~~~
> (Jul 2015, Dan):
> One likely technology will be web sockets or Atmosphere; Wicket integrates 
> with both.
> (Oct 2016, Martin on mailing list suggested):
> The simplest way is to use 
> AbstractTimerAjaxBehavior/AjaxSelfUpdatingBehavior. This would do polling,
> i.e. every N seconds an Ajax call will be made to check whether there is new 
> data to show.
> If you need to do server push, i.e. whenever new data comes to push it 
> immediately to the client then I'd suggest Wicket Native WebSocket instead of 
> Atmosphere. Nowadays all browsers support WebSocket (IE10+ and all others) 
> and almost everyone deploys on web server that support JSR 356 - 
> https://ci.apache.org/projects/wicket/guide/7.x/guide/nativewebsockets.html.
> It's usage is as easy as Wicket Ajax.
> Another option is Server Send Events 
> (https://github.com/wicketstuff/core/tree/master/wicket-html5-parent/wicket-html5)
> demo: 
> https://github.com/wicketstuff/core/tree/master/wicket-html5-parent/wicket-html5-examples/src/main/java/org/wicketstuff/html5/eventsource
> ~~~~~~~~~~~~
> One possible design is a persisted entity to hold the messages, keyed by 
> (username, datetime).  We could then have a service that a completing action 
> could call, to save the message.
> This service could check if the user is currently logged on, and if so could 
> notify the user via Atmosphere or similar.
> I also think it might be nice if the Wicket UI could provide a way for the 
> user to view the last 5 (say) messages, a bit like a notificatoin center.  I 
> think that Mac does this, and Windows 10 will do,  Thus, if the user is *not* 
> logged on when the job completes, then we can still bring the notification 
> message to their attention when they next log on.
> Perhaps this could be added as a button on the footer bar?  And/or the 
> messages could slide in from this footer bar.  (This is the way that the MS 
> Azure portal works, and it's not too unpleasant).

This message was sent by Atlassian JIRA

Reply via email to