             switch $0 {
             case .success():
                 me.startMessageSocketPingTimer(interval: messageSocketPingInterval)
-                me.lastEstablishedConnectRequest = me.ongoingConnectRequest
+                me.connectRequests.lastEstablished = me.connectRequests.onGoing
                 me.delegate?.nicoUtilityDidConnectToLive(me, roomPosition: RoomPosition.arena)
             case .failure(_):
                 let reason = "Failed to open message server."

extension NicoUtility {
    func connect(liveNumber: Int, sessionType: NicoSessionType, connectContext: NicoUtility.ConnectContext = .normal) {
        // 1. Save connection request.
        ongoingConnectRequest = ConnectRequest(
            liveNumber: liveNumber,
            sessionType: sessionType
        )
        lastEstablishedConnectRequest = nil

        // 2. Save chat numbers.
        switch connectContext {

    enum ConnectContext {
        case normal, reconnect
    }
    struct ConnectRequests {
        // swiftlint:disable nesting
        struct Request {
            let liveNumber: Int
            let sessionType: NicoSessionType
        }
        // swiftlint:enable nesting
        var onGoing: Request?
        var lastEstablished: Request?
    }
    struct ChatNo {
        var latest: Int
