Skip to content

Commit ea701bc

Browse files
author
karisli
committed
6.0.0开发quic超时时间配置接口
1 parent 133fe69 commit ea701bc

File tree

15 files changed

+245
-45
lines changed

15 files changed

+245
-45
lines changed

QCloudCore/Classes/Base/QCLOUDRestNet/SessionSupport/QCloudHTTPSessionManager.m

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -568,8 +568,6 @@ - (void)executeRestHTTPReqeust:(QCloudHTTPRequest *)httpRequest {
568568
dic[@"body"] = [NSNull null];
569569
}
570570

571-
dic[@"port"] = @(httpRequest.runOnService.configuration.port);
572-
dic[@"tcp_port"] = @(httpRequest.runOnService.configuration.tcp_port);
573571
SEL createQuicTaskSelector = NSSelectorFromString(@"quicDataTaskWithRequst:infos:");
574572
if ([_quicSession respondsToSelector:createQuicTaskSelector]) {
575573
IMP imp = [_quicSession methodForSelector:createQuicTaskSelector];

QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudServiceConfiguration.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,7 @@
5757

5858
@property (nonatomic, assign) NSTimeInterval timeoutInterval;
5959

60-
@property (nonatomic, assign) NSInteger port;
6160

62-
@property (nonatomic, assign) NSInteger tcp_port;
6361

6462

6563
@property (nonatomic, assign) BOOL enableQuic;

QCloudCore/Classes/Base/QCloudClientBase/Request/QCloudServiceConfiguration.m

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ - (instancetype)init
2121
if (!self) {
2222
return self;
2323
}
24-
self.port = 443;
25-
self.tcp_port = 80;
2624
return self;
2725
}
2826
- (NSString *)userAgent {
@@ -47,8 +45,6 @@ - (instancetype)copyWithZone:(NSZone *)zone {
4745
config.backgroundEnable = self.backgroundEnable;
4846
config.isCloseShareLog = self.isCloseShareLog;
4947
config.timeoutInterval = self.timeoutInterval;
50-
config.port = self.port;
51-
config.tcp_port = self.tcp_port;
5248
config.enableQuic = self.enableQuic;
5349
return config;
5450
}

QCloudQuic.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' }
3636
s.source_files = 'QCloudQuic/Classes/QCloudBase/**/*','QCloudQuic/Classes/QuicFramework//*.{h}'
3737
s.vendored_frameworks = 'QCloudQuic/Classes/QuicFramework/Tquic.framework'
3838
s.static_framework = true
39-
s.dependency "QCloudCOSXML",'6.0.0'
39+
s.dependency "QCloudCOSXML",'6.0.0'
4040

4141

4242
end

QCloudQuic/Classes/QCloudBase/QCloudQuic.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@
1010

1111

1212

13-
#import <Foundation/Foundation.h>
13+
#import <Foundation/Foundation.h>
14+
#import "QCloudQuicConfig.h"

QCloudQuic/Classes/QCloudBase/QCloudQuicDataTask.m

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ - (instancetype)initWithHTTPRequest:(NSMutableURLRequest *)httpRequest
3333
headerFileds:httpRequest.allHTTPHeaderFields];
3434
_manager = [TquicConnection new];
3535
__weak typeof(self) weakSelf = self;
36-
[_manager tquicConnectWithQuicRequest:req session:quicSession
36+
[_manager tquicConnectWithQuicRequest:req
3737
didReceiveResponse:^(TquicResponse *_Nonnull response) {
3838
__strong typeof(weakSelf) strngSelf = weakSelf;
3939
strngSelf.response = [[NSHTTPURLResponse alloc] initWithURL:httpRequest.URL

QCloudQuic/Classes/QCloudBase/QCloudQuicSession.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ NS_ASSUME_NONNULL_BEGIN
1515

1616
+ (instancetype)quicSessionDelegate:(nullable id<NSURLSessionDataDelegate>)delegate;
1717
@property (nullable, readonly, retain) id<NSURLSessionDataDelegate> delegate;
18-
@property (nonatomic)NSInteger port;
19-
@property (nonatomic)NSInteger tcp_port;
2018
- (QCloudQuicDataTask *)quicDataTaskWithRequst:(NSMutableURLRequest *)httpRequs infos:(NSDictionary *)dic;
2119
@end
2220

QCloudQuic/Classes/QCloudBase/QCloudQuicSession.m

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ - (QCloudQuicDataTask *)quicDataTaskWithRequst:(NSMutableURLRequest *)httpRequst
2626
id body = dic[@"body"];
2727
NSString *quicHost = dic[@"quicHost"];
2828
NSString *quicIp = dic[@"quicIP"];
29-
self.port = [dic[@"port"] integerValue];
30-
self.tcp_port = [dic[@"tcp_port"] integerValue];
3129
QCloudQuicDataTask *quicTask = [[QCloudQuicDataTask alloc] initWithHTTPRequest:httpRequst
3230
quicHost:quicHost
3331
quicIp:quicIp

QCloudQuic/Classes/QCloudBase/TquicConnection.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
@class TquicRequest;
1212
@class TquicResponse;
13-
@class QCloudQuicSession;
1413
NS_ASSUME_NONNULL_BEGIN
1514
typedef void (^TquicRequestDidConnectBlock)(BOOL sucessed);
1615
typedef void (^TquicRequesDidReceiveResponseBlock)(TquicResponse *response);
@@ -22,7 +21,6 @@ typedef void (^TquicRequesDidCompleteWithErrorBlock)(NSError *error);
2221

2322
@property (nonatomic, assign) BOOL connect;
2423
- (void)tquicConnectWithQuicRequest:(TquicRequest *)quicRequest
25-
session:(QCloudQuicSession *)session
2624
didReceiveResponse:(TquicRequesDidReceiveResponseBlock)didReceiveResponse
2725
didReceiveData:(TquicRequestDidReceiveDataBlock)didReceiveData
2826
didSendBodyData:(TquicRequestDidSendBodyDataBlock)didSendBodyData

QCloudQuic/Classes/QCloudBase/TquicConnection.mm

Lines changed: 48 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#include <chrono>
1717
#import "TquicResponse.h"
1818
#import "TquicRequest.h"
19-
#import "QCloudQuicSession.h"
19+
#import "QCloudQuicConfig.h"
2020
//每次发送的字节数
2121
static const int64_t sentByte = 32768;
2222
class TnetAsyncDelegate : public TnetRequestDelegate{
@@ -172,6 +172,7 @@ void OnConnectionClose(int error_code, const char* error_detail) override{
172172

173173
// This request has received all the data and finished.
174174
void OnRequestFinish(int stream_error) override{
175+
175176
NSError *error = nil;
176177
if (stream_error != 0) {
177178
error = [[NSError alloc] initWithDomain:NSURLErrorDomain code:stream_error userInfo:nil];
@@ -190,31 +191,68 @@ @interface TquicConnection (){
190191
std::shared_ptr<TnetAsyncDelegate>tquic_delegate_sp;
191192
}
192193
@property (nonatomic,strong)TquicRequest *quicReqeust;
193-
@property (nonatomic,weak)QCloudQuicSession *session;
194+
194195
@end
195196

196197

197198
@implementation TquicConnection
198199

199200
-(void)tquicConnectWithQuicRequest:(TquicRequest *)quicRequest
200-
session:(QCloudQuicSession *)session
201+
201202
didReceiveResponse:(TquicRequesDidReceiveResponseBlock)didReceiveResponse didReceiveData:(TquicRequestDidReceiveDataBlock)didReceiveData didSendBodyData:(TquicRequestDidSendBodyDataBlock)didSendBodyData RequestDidCompleteWithError:(TquicRequesDidCompleteWithErrorBlock)requestDidCompleteWithError{
202-
[self onHandleQuicRequest:quicRequest session:session didReceiveResponse:didReceiveResponse didReceiveData:didReceiveData didSendBodyData:didSendBodyData RequestDidCompleteWithError:requestDidCompleteWithError];
203+
[self onHandleQuicRequest:quicRequest didReceiveResponse:didReceiveResponse didReceiveData:didReceiveData didSendBodyData:didSendBodyData RequestDidCompleteWithError:requestDidCompleteWithError];
203204

204205
}
205206

206-
-(void)onHandleQuicRequest:(TquicRequest *)quicRequest session:(QCloudQuicSession *)session didReceiveResponse:(TquicRequesDidReceiveResponseBlock)didReceiveResponse didReceiveData:(TquicRequestDidReceiveDataBlock)didReceiveData didSendBodyData:(TquicRequestDidSendBodyDataBlock)didSendBodyData RequestDidCompleteWithError:(TquicRequesDidCompleteWithErrorBlock)requestDidCompleteWithError{
207+
-(void)onHandleQuicRequest:(TquicRequest *)quicRequest didReceiveResponse:(TquicRequesDidReceiveResponseBlock)didReceiveResponse didReceiveData:(TquicRequestDidReceiveDataBlock)didReceiveData didSendBodyData:(TquicRequestDidSendBodyDataBlock)didSendBodyData RequestDidCompleteWithError:(TquicRequesDidCompleteWithErrorBlock)requestDidCompleteWithError{
207208
tquic_delegate_sp.reset(new TnetAsyncDelegate (quicRequest, didReceiveResponse,didReceiveData,didSendBodyData,requestDidCompleteWithError));
208209
TnetConfig config = TnetConfig();
209210
if (quicRequest.body) {
210211
config.upload_optimize_ = true;
211212
}
212-
config.congestion_type_ = kBBR;
213-
config.race_type = kQUICHTTP;
213+
214+
CongestionType congestion_type;
215+
switch ([QCloudQuicConfig shareConfig].congestion_type) {
216+
case QCloudCongestionTypeCubicBytes:
217+
congestion_type = kCubicBytes;
218+
break;
219+
case QCloudCongestionTypeRenoBytes:
220+
congestion_type = kRenoBytes;
221+
break;
222+
case QCloudCongestionTypeBBR:
223+
congestion_type = kBBR;
224+
break;
225+
case QCloudCongestionTypePCC:
226+
congestion_type = kPCC;
227+
break;
228+
case QCloudCongestionTypeGoogCC:
229+
congestion_type = kGoogCC;
230+
break;
231+
default:
232+
break;
233+
}
234+
config.congestion_type_ = congestion_type;
235+
RaceType raceType;
236+
switch ( [QCloudQuicConfig shareConfig].race_type) {
237+
case QCloudRaceTypeOnlyQUIC:
238+
raceType = kOnlyQUIC;
239+
break;
240+
case QCloudRaceTypeQUICHTTP:
241+
raceType = kQUICHTTP;
242+
break;
243+
case QCloudRaceTypeOnlyHTTP:
244+
raceType = kOnlyHTTP;
245+
break;
246+
}
247+
config.race_type = raceType;
248+
config.connect_timeout_millisec_ = [QCloudQuicConfig shareConfig].connect_timeout_millisec_;
249+
// 设置连接空闲时间,单位为ms,默认值为与服务端协商值,一般为90000ms
250+
config.idle_timeout_millisec_ = [QCloudQuicConfig shareConfig].idle_timeout_millisec_;
251+
config.is_custom_ = [QCloudQuicConfig shareConfig].is_custom;
214252
request_sp.reset(new TnetQuicRequest(tquic_delegate_sp.get(),config));
215253
tquic_delegate_sp.get()->request_sp = request_sp;
216254
self.quicReqeust = quicRequest;
217-
self.session = session;
255+
218256
}
219257

220258
//cancle request
@@ -226,7 +264,8 @@ -(void)cancleRequest{
226264
//sent request
227265
-(void)startRequest{
228266
NSLog(@"Tquic startRequest: %@ (%@)", self.quicReqeust.host, self.quicReqeust.ip);
229-
request_sp.get()->Connect([self.quicReqeust.host UTF8String] , [self.quicReqeust.ip UTF8String], self.session.port, self.session.tcp_port);
267+
request_sp.get()->Connect([self.quicReqeust.host UTF8String] , [self.quicReqeust.ip UTF8String], [QCloudQuicConfig shareConfig].port, [QCloudQuicConfig shareConfig].tcp_port);
268+
// request_sp.get()->Connect([@"iacc.stgw.qq.com" UTF8String] , [@"101.89.15.244" UTF8String], [QCloudQuicConfig shareConfig].port, [QCloudQuicConfig shareConfig].tcp_port);
230269
}
231270
-(void)dealloc{
232271
NSLog(@"TquicConnection connect dealloc address = %@",self);

0 commit comments

Comments
 (0)