尝试使用AFNetworking
库在Objective-C中实现长轮询实现。但是,我不确定我做得对。
基本上是在创建GET请求:
NSError *error = nil;
NSDictionary *queryParams = nil;
if ([parameters objectForKey:@"timestamp"]) {
queryParams = @{@"timestamp" : [parameters objectForKey:@"timestamp"]};
}
NSMutableURLRequest *request = [self.requestSerializer requestWithMethod:@"GET" URLString:[NSString stringWithFormat:@"%@sample/%@/state", self.baseURL.absoluteString, [parameters objectForKey:@"sampleKey"]] parameters:queryParams error:&error];
[request setTimeoutInterval:50];
[request setValue:[parameters objectForKey:@"currentSessionToken"] forHTTPHeaderField:kAuthenticationHeaderField];
return [self APIOperationWithRequest:request willRetry:NO success:^(NSDictionary *JSON) {
success(JSON);
} failure:^(NSDictionary *errorResponseDict) {
failure(errorResponseDict);
}];
无论是超时还是成功,我都会重新创建操作并将其重新放入操作队列中。
这可以作为一种方法,还是有更好的方法来实现它?如果我能找到更详细的资源,将会有所帮助。