私は SocketRocket を使用しています。これまでのところすべて正常に機能しており、今日は (自己署名) 証明書をピン留めしようとしましたが、エラーが発生しました:
- (void)connectWebSocket {
webSocket.delegate = nil;
webSocket = nil;
NSString *urlString = [NSString stringWithFormat: @"wss://%@:%@", server_ip, server_port];
//NSLog(@"%@", urlString);
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:urlString]
cachePolicy: NSURLRequestUseProtocolCachePolicy
timeoutInterval:5.0];
// pin down certificate
NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"myOwnCertificate" ofType:@"cer"];
NSData *certData = [[NSData alloc] initWithContentsOfFile:cerPath];
CFDataRef certDataRef = (__bridge CFDataRef)certData;
SecCertificateRef certRef = SecCertificateCreateWithData(NULL, certDataRef);
id certificate = (__bridge id)certRef;
[request setSR_SSLPinnedCertificates:@[certificate]];
SRWebSocket *newWebSocket = [[SRWebSocket alloc] initWithURLRequest: request];
newWebSocket.delegate = self;
[newWebSocket open];
socketIsOpen = true;
}
エラー: 'NSURLRequest' の可視の @interface がセレクター 'setSR_SSLPinnedCertificates:' を宣言していません
何か不足していますか?
ありがとう!