Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...

Bloque de código
languagejava
@Name("socketObserver")
@Scope(ScopeType.APPLICATION)
public class SocketObserver {

    @Observer( SocketEvent.EVENT_SOCKET_OPENED )
    public void onOpen(SocketEvent event) {
        String channel = event.getChannel(); // Returns <fw:socket channel>.
        Long userId = event.getUser(); // Returns <fw:socket user>, if any.
        SocketEvent.EventType type = event.getEventType(); // Valid values: OPENED, SWITCHED, CLOSED
        // Do your thing with it. E.g. collecting them in a concurrent/synchronized collection.
        // Do note that a single person can open multiple sockets on same channel/user.
    }

    @Observer( SocketEvent.EVENT_SOCKET_SWITCHED )
    public void onSwitch(SocketEvent event) {
        String channel = event.getChannel(); // Returns <fw:socket channel>.
        Long currentUserId = event.getUser(); // Returns current <fw:socket user>, if any.
        Long previousUserId = event.getPreviousUser(); // Returns previous <fw:socket user>, if any.
        SocketEvent.EventType type = event.getEventType(); // Valid values: OPENED, SWITCHED, CLOSED 
        // Do your thing with it. E.g. updating in a concurrent/synchronized collection.
    }

    @Observer( SocketEvent.EVENT_SOCKET_CLOSED ) 
    public void onClose(SocketEvent event) {
        String channel = event.getChannel(); // Returns <fw:socket channel>.
        Long userId = event.getUser(); // Returns <fw:socket user>, if any.
        SocketEvent.EventType type = event.getEventType(); // Valid values: OPENED, SWITCHED, CLOSED 
        CloseCode code = event.getCloseCode(); // Returns close reason code.
        // Do your thing with it. E.g. removing them from collection.
    }

}

...