         self.clientID = clientID
         self.host = host
         self.port = port
-        retry = Retry(retry: retrySetting.retry, maxRetryCount: retrySetting.maxCount, step: retrySetting.step)
+        retry = Retry(retry: retrySetting.retry, maxRetryCount: retrySetting.maxCount, step: retrySetting.step, fusingDepth: retrySetting.fusingDepth, fusingDuration: retrySetting.fusingDuration)
         super.init()
         buffer.delegate = self
         printNotice("init")

        
        // MARK: --- public methods
        
        func start(_ block: @escaping () -> Void) {
            guard retrying == false else {
                printWarning("Object.Retry don't retry")
                return
            }
            
            printNotice("Object.Retry start")
            doRetry(block)
        }
        
        func reset() {

    fileprivate var pingpong: PingPong?
    
    // auto reconnect
    public var retrySetting: (retry: Bool, maxCount: UInt, step: TimeInterval, fusingDepth: UInt, fusingDuration: TimeInterval) = (true, 10, 1.2, 60, 60) {
        didSet {
            retry = Retry(retry: retrySetting.retry, maxRetryCount: retrySetting.maxCount, step: retrySetting.step, fusingDepth: retrySetting.fusingDepth, fusingDuration: retrySetting.fusingDuration)
        }
    }
    public var retrying: Bool { return retry.retrying }
