...
| Bloque de código | ||
|---|---|---|
| ||
@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.
// 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.
// Do your thing with it. E.g. updating in a concurrent/synchronized collection.
}
@Observer( SocketEvent.EVENT_SOCKET_CLOSED )
public void onClose(@Observes @Closed SocketEvent event) {
String channel = event.getChannel(); // Returns <fw:socket channel>.
Long userId = event.getUser(); // Returns <fw:socket user>, if any.
CloseCode code = event.getCloseCode(); // Returns close reason code.
// Do your thing with it. E.g. removing them from collection.
}
} |
...