         guard let _chat = try? decoder.decode(WebSocketChatData.self, from: data) else { return }
         // log.debug(_chat)
         let chat = _chat.toChat()
-        guard chatNo.maxBeforeReconnect < chat.no else {
+        guard chatNumbers.maxBeforeReconnect < chat.no else {
             log.debug("Skip duplicated chat.")
             return
         }
-        chatNo.latest = chat.no
+        chatNumbers.latest = chat.no
         delegate?.nicoUtilityDidReceiveChat(self, chat: chat)
         if _chat.isDisconnect {
             disconnect()

        // 2. Save chat numbers.
        switch connectContext {
        case .normal:
            chatNo.latest = 0
            chatNo.maxBeforeReconnect = 0
        case .reconnect:
            chatNo.maxBeforeReconnect = chatNo.latest
        }

        // 3. Cleanup current connection, if needed.

        var onGoing: Request?
        var lastEstablished: Request?
    }
    struct ChatNumbers {
        var latest: Int
        var maxBeforeReconnect: Int
    }
