private void fireClientDisconnectEvent(DisconnectOnServerEvent evt) {
    try {
      ISocketServerConnection ssc = evt.getClientConnection();

      logger.debug(getName() + " disconnect client: " + ssc.getRemoteAddress() +
              " <idconnection=" + ssc.getIdConnection() +
              ", count=" + remoteServerCall.getConnectionsCount() + ">");

      // notify subscribers that client has been disconnected
      fireConnectionDisconnectEvent(new ConnectionDisconnectEvent(this, ssc.getIdConnection()));
    }
    catch (Exception exc) {
      logger.error(getName() + ".OnClientDisconnectEvent: " + exc.getMessage());
    }
  }