     func startAllTimers() {
         startWatchSocketKeepSeatTimer(interval: watchSocketKeepSeatInterval)
         startMessageSocketEmptyMessageTimer(interval: messageSocketEmptyMessageInterval)
-        startLastPongCheckTimer()
+        startPingPongCheckTimer()
         log.debug("Started all timers.")
     }
 
     func stopAllTimers() {
         stopWatchSocketKeepSeatTimer()
         stopMessageSocketEmptyMessageTimer()
-        stopLastPongCheckTimer()
+        stopPingPongCheckTimer()
         clearTextSocketEventCheckTimer()
         log.debug("Stopped all timers.")
     }

// Misc:
private let defaultWatchSocketKeepSeatInterval = 30
private let messageSocketEmptyMessageInterval = 60
private let lastPongCheckInterval = 10
private let pongCatchDelay = 5
private let lastTextCheckInterval = 10
private let textEventDisconnectDetectDelay = 60

    }
}

// MARK: - Private Methods (Ping-Pong Check Timer)
private extension NicoUtility {
    func startPingPongCheckTimer(interval: Int = pingPongCheckInterval) {
        stopPingPongCheckTimer()
        lastPongSocketDates = .init()
        pingPongCheckTimer = Timer.scheduledTimer(
            timeInterval: Double(interval),
            target: self,
            selector: #selector(NicoUtility.pingPongCheckTimerFired),
            userInfo: nil,
            repeats: true)
        log.debug("Started last-pong check timer.")
    }

    func stopPingPongCheckTimer() {
        pingPongCheckTimer?.invalidate()
        pingPongCheckTimer = nil
        pongCatchTimer?.invalidate()
        pongCatchTimer = nil
        lastPongSocketDates = nil
        log.debug("Stopped last-pong check timer.")
    }

    @objc func pingPongCheckTimerFired() {
        let pingDate = Date()
        messageSocket?.write(ping: Data())
        pongCatchTimer?.invalidate()
