Opened 11 years ago

Last modified 3 years ago

#111 released enhancement (fixed)

"Ajax push" features (aka "Comet")

Reported by: Sami Ekblad Owned by: Johannes Dahlstrom
Priority: blocker Milestone: Vaadin 7.1.0.beta1
Component: Core Framework Version:
Keywords: ajax push comet server-push Cc: michel.jung89@…
Depends on:
Workaround:
Verified:
Fv: no Pro Account: Vote for Feature

Description (last modified by Jani Laakso)

See

Generic server-side API for controlling user interface components in browser. This will enable implementation of "collaboration features" like real-time slideshows and chats. Besides the name, this has nothing ajax specific and it can be implemented in WA also.

See also "Reverse Ajax" at http://getahead.ltd.uk/dwr/changelog/dwr20

There are several ways of doing this:

  • Simple Generic API for refreshing any component
  • Generic "peer-support" into all components
  • Support into those components where it is most relevant

Change history (25)

comment:1 Changed 11 years ago by Sami Ekblad

  • Keywords comet server-push added
  • Summary changed from "Ajax push" features to "Ajax push" features (aka "Comet")

comment:2 Changed 11 years ago by Jani Laakso

  • affects_documentation set to 0
  • Description modified (diff)
  • Owner changed from Marc Englund to Jani Laakso

comment:3 Changed 10 years ago by Jani Laakso

  • affects_release_notes set to 0

See also #133

comment:4 Changed 10 years ago by Joonas Lehtinen

  • Milestone set to IT Mill Sponsored Backlog

comment:5 Changed 8 years ago by Joonas Lehtinen

One implementation that should be considered to be supported: kaazing.org

comment:6 Changed 8 years ago by zlowred

There is standard solution published for such problems: http://dev.w3.org/html5/websockets/
For unsupported browsers library like this http://github.com/gimite/web-socket-js one can be used.

comment:7 Changed 8 years ago by Joonas Lehtinen

Also, evaluate http://www.icepush.org/ as one alternative implementation. See this discussion on forums: http://vaadin.com/forum/-/message_boards/message/165829

comment:8 Changed 8 years ago by Artur Signell

  • hours_left 200 deleted

Icepush implementation available as add-on: http://vaadin.com/directory#addon/125

This provides a simple "push()" method which causes the client to load any (for any component) updates from the server. I think this should be sufficient for most cases.

comment:9 Changed 7 years ago by ya-enot

The Icepush plugin is very raw and doesn't work in OSGi environment. I think Comet shold be a standard for the vaadin because it could provide transparent auto-refresh for components on client side, like on the classic desktop systems.

comment:10 follow-up: Changed 6 years ago by jdillon

2 mature comet/push implementations: http://atmosphere.java.net/ http://cometd.org/

comment:11 in reply to: ↑ 10 ; follow-up: Changed 6 years ago by ya-enot

Replying to jdillon:

2 mature comet/push implementations: http://atmosphere.java.net/ http://cometd.org/

This projects are standalone and needs a portion of work for integration into the Vaadin API. I think that having an intternal comet handler in Vaadin could be more convenient.

comment:12 in reply to: ↑ 11 Changed 6 years ago by jdillon

Replying to ya-enot:

This projects are standalone and needs a portion of work for integration into the Vaadin API. I think that having an intternal comet handler in Vaadin could be more convenient.

Either of these 2 could be used to implement such an internal handler. In other words you don't need to go install their servlets and such, but use the support classes to implement the integration. My guess is that Atmposhere may be best for such an integration task. Not sure that Vaadin needs the pub-sub bits that CometD's Bayeux impl brings in (and may be more complicated to integrate).

comment:13 Changed 6 years ago by Michel Jung

  • Cc michel.jung89@… added

comment:14 Changed 6 years ago by Jani Laakso

Please see also Vaadin's http://vaadin.com/directory#addon/dontpush add-on.

And HTML5 Web Sockets: A Quantum Leap in Scalability for the Web: http://java.sys-con.com/node/1315473

comment:15 Changed 6 years ago by Artur Signell

  • Milestone changed from Vaadin Backlog to Vaadin 7 backlog

comment:16 Changed 6 years ago by Artur Signell

  • Milestone changed from Vaadin 7 backlog to Vaadin 7.0.0.alpha4

comment:17 Changed 6 years ago by mthomas

http://vaadin.com/directory#addon/dontpush is obsolete; instead, please use http://vaadin.com/directory#addon/dontpush-ozonelayer which contains both the Jetty-specific dontpush code as well as an http://atmosphere.java.net/ solution.

comment:18 Changed 5 years ago by Artur Signell

  • Milestone changed from Vaadin 7.0.0.alpha4 to Vaadin 7.0.0.beta1

Milestone Vaadin 7.0.0.alpha4 deleted

comment:2 Changed 5 years ago by Artur Signell

  • Milestone changed from Vaadin 7.0.0.beta1 to Vaadin 7 backlog

comment:3 Changed 5 years ago by Johannes Dahlstrom

  • Milestone changed from Vaadin 7 backlog to Vaadin 7.1
  • Owner changed from Jani Laakso to Johannes Dahlstrom
  • Priority changed from undefined to blocker
  • Status changed from new to accepted

It took six year but it's finally happening :)

comment:4 Changed 5 years ago by Artur Signell

  • Resolution set to fixed
  • Status changed from accepted to closed

And after only a few weeks the first version is done. I'm sure there are push related issues remaining but let's create new tickets for them.

comment:5 Changed 5 years ago by Michel Jung

Wow that's great news, I'm throwing a party right now :-) Thank you guys.

comment:6 Changed 4 years ago by Artur Signell

  • Fv set

comment:7 Changed 4 years ago by Artur Signell

  • Fv unset

comment:8 Changed 3 years ago by Artur Signell

  • Status changed from closed to released
Note: See TracTickets for help on using tickets.