我试图通过XMPPFramework实施robbiehanson。问题是,我收到以下错误消息:
Error Domain=GCDAsyncSocketErrorDomain Code=7 "Socket closed by remote peer" UserInfo=0x9517440 {NSLocalizedDescription=Socket closed by remote peer}
我已经尝试过在互联网上找到的所有内容(XMPPPing
等),但没有什么能解决我的问题。以下是我使用的代码:
- (void)connect {
stream = [[XMPPStream alloc] init];
[stream setEnableBackgroundingSocket:YES];
[stream addDelegate:self delegateQueue:dispatch_get_main_queue()];
reconnect = [[XMPPReconnect alloc] init];
[reconnect activate:stream];
[stream setHostName:_hostName];
[stream setPort:5223];
[stream setMyJID:[XMPPJID jidWithString:_username];
NSError *e;
if(![stream connectWithTimeout:20 error:&e]) {
NSLog(@"%@", e);
}
- (void)xmppStreamDidConnect:(XMPPStream *)sender {
NSError *e;
[sender authenticateWithPassword:_password];
if(e) {
NSLog(@"%@", e);
}
}
我立即收到此错误消息,而不是几秒钟后。我之所以认为可能是因为我们的服务器需要SSL,但我找到的唯一解决方案是运行[stream secureConnection:nil];
,这只有在连接时才有效。
我也从未获得-xmppStreamDidConnect:
委托方法。
答案 0 :(得分:1)
stream oldSchoolSecureConnectWithTimeout:
将连接到5223 / SSL