public void onApplicationEvent(SessionConnectEvent event) {
    MessageHeaders headers = event.getMessage().getHeaders();
    Principal user = SimpMessageHeaderAccessor.getUser(headers);
    if (user == null) {
      logger.info(event.getSource() + " Connect  user == null");
      user =
          new Principal() {

            @Override
            public String getName() {
              return "test zhxy 1";
            }
          };
    }
    String id = SimpMessageHeaderAccessor.getSessionId(headers);
    //		repository.save(new ActiveWebSocketUser(id, user.getName(), Calendar.getInstance()));
    messagingTemplate.convertAndSend("/topic/friends/signin", Arrays.asList(user.getName()));
  }
예제 #2
0
  @Override
  public void onApplicationEvent(AbstractSubProtocolEvent event) {
    MessageHeaders headers = event.getMessage().getHeaders();
    Principal user = SimpMessageHeaderAccessor.getUser(headers);

    if (event instanceof SessionConnectEvent) {
      String id = SimpMessageHeaderAccessor.getSessionId(headers);

      playerManager.addPlayer(id, user.getName());

      messagingTemplate.convertAndSend(
          "/topic/player/join", PlayerEntry.create(user.getName(), PlayerEntry.State.ACTIVE));
    } else if (event instanceof SessionDisconnectEvent) {
      SessionDisconnectEvent disconnectEvent = (SessionDisconnectEvent) event;

      playerManager.removePlayer(disconnectEvent.getSessionId());

      messagingTemplate.convertAndSend(
          "/topic/player/leave", PlayerEntry.create(user.getName(), PlayerEntry.State.DETACHED));
    }
  }