Exemplo n.º 1
0
    // TODO timeout handling improvement. use nettys build in handlers which
    // also take sent traffic into account
    @Override
    public void run(Timeout timeout) throws Exception {

      ArrayList<ConnectedUser> timedOuts = new ArrayList<ConnectedUser>();

      MessageProxyServer.this.timeoutChecker.newTimeout(
          new TimeoutTimerTask(), MessageProxyServer.this.timeoutInSeconds, TimeUnit.SECONDS);
      for (ConnectedUser user : MessageProxyServer.this.connectedUsers) {
        if (!user.isAlive()) {
          timedOuts.add(user);
        }
        user.setAlive(false);
      }
      for (ConnectedUser user : timedOuts) {
        clientTimedOut(user.getChannel());
      }
      broadcastMessage(new Message(OpCode.STC_HEARTBEAT_REQUEST));
    }