我正在开发使用SSL安全的Ejabbered服务器的聊天应用程序 和TLSv1.1 / 1.2,我正在尝试连接客户端到服务器获取以下错误代码。
<template>
<header class="..." >
... (1000 rows)
</header>
</template>
<script>
export default {
name: 'Header'
}
</script>
必需的设置 在Appdelegate(Setupstream)
Error Domain=GCDAsyncSocketErrorDomain Code=7 "Socket closed by remote peer" UserInfo={NSLocalizedDescription=Socket closed by remote peer.
之后手动信任自定义证书验证
_xmppStream.hostName=@""; // hostname
_xmppStream.hostPort=5223; // 5223 for secure SSL connection
_xmppStream.startTLSPolicy = XMPPStreamStartTLSPolicyRequired;
customCertEvaluation = YES;
之后匹配completionHandler中的客户端服务器证书。
- (void)xmppStream:(XMPPStream *)sender willSecureWithSettings:
(NSMutableDictionary *)settings{
NSString *expectedCertName = [_xmppStream.myJID domain];
if (expectedCertName){
[settings setObject:expectedCertName forKey:(NSString *)kCFStreamSSLPeerName];
}
if (customCertEvaluation){
[settings setObject:@(YES)forKey:GCDAsyncSocketManuallyEvaluateTrust];
}
GCDAsyncSocket.m / XMPPStream.m类中是否需要进行任何自定义以进行安全连接。
答案 0 :(得分:0)
尝试使用此弃用方法:
[self.xmppStream setHostName:@"yourhostname.com"]
还要确保正确设置主机名:
https
未使用{{1}}作为前缀。
目前我们正在使用此解决方法,而我们找到了一种在没有弃用连接方法的情况下工作的方法。