             guard let me = self else { return }
             switch $0 {
             case .success():
-                me.startMessageSocketEmptyMessageTimer(interval: messageSocketEmptyMessageInterval)
-                me.startLastPongCheckTimer()
-                me.startLastTextCheckTimer()
+                me.startAllTimers()
                 me.connectRequests.lastEstablished = me.connectRequests.onGoing
                 me.delegate?.nicoUtilityDidConnectToLive(me, roomPosition: RoomPosition.arena, connectContext: connectContext)
             case .failure(_):

            log.debug("disconnected")
        case .text(let text):
            log.debug("text: \(text)")
            processWebSocketData(text: text, socket: socket, completion: completion)
            lastTextSocketDates?.watch = Date()
        case .binary(_):
            log.debug("binary")
        case .pong(_):

    }

    func disconnectSocketsAndResetState() {
        stopAllTimers()

        [watchSocket, messageSocket].forEach {
            $0?.onEvent = nil
            $0?.disconnect()
        }
        watchSocket = nil
        messageSocket = nil

        live = nil
    }

    func startAllTimers() {
        startWatchSocketKeepSeatTimer(interval: watchSocketKeepSeatInterval)
        startMessageSocketEmptyMessageTimer(interval: messageSocketEmptyMessageInterval)
        startLastPongCheckTimer()
        log.debug("Started all timers.")
    }

    func stopAllTimers() {
        stopWatchSocketKeepSeatTimer()
        stopMessageSocketEmptyMessageTimer()
        stopLastPongCheckTimer()
        clearTextSocketEventCheckTimer()
        log.debug("Stopped all timers.")
    }
}

