You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@isis.apache.org by "Dan Haywood (JIRA)" <ji...@apache.org> on 2016/11/02 10:07:58 UTC

[jira] [Updated] (ISIS-1176) Provide the capability to push notification messages to end-users without refreshing (using web sockets or Atmosphere etc).

     [ https://issues.apache.org/jira/browse/ISIS-1176?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Dan Haywood updated ISIS-1176:
------------------------------
    Description: 
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).



  was:
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).

The likely technology will be web sockets or Atmosphere; Wicket integrates with both.

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).




> 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: 1.18.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
(v6.3.4#6332)