Class WebsocketChannelManager

  • All Implemented Interfaces:
    Serializable

    @SessionScoped
    public class WebsocketChannelManager
    extends Object
    implements Serializable

    This web socket channel manager holds all application and session scoped web socket channel identifiers registered by <f:websocket>.

    Since:
    2.3
    Author:
    Bauke Scholtz
    See Also:
    Push, Serialized Form
    • Constructor Detail

      • WebsocketChannelManager

        public WebsocketChannelManager()
    • Method Detail

      • register

        public String register​(FacesContext context,
                               String channel,
                               String scope,
                               Serializable user)
        Register given channel on given scope and returns the web socket channel identifier.
        Parameters:
        context - The involved faces context.
        channel - The web socket channel.
        scope - The web socket scope. Supported values are application, session and view, case insensitive. If null, the default is application.
        user - The user object representing the owner of the given channel. If not null, then scope may not be application.
        Returns:
        The web socket URL.
        Throws:
        IllegalArgumentException - When the scope is invalid or when channel already exists on a different scope.
      • deregisterSessionScope

        @PreDestroy
        protected void deregisterSessionScope()
        When current session scope is about to be destroyed, deregister all session scope channels and explicitly close any open web sockets associated with it to avoid stale websockets. If any, also deregister session users.