找回密码
 立即注册
搜索

本文来自

iOS开发交流区

iOS开发交流区

人已关注

请添加对本版块的简短描述

ios xmpp openfire socket长链接的问题 心跳断开了

[复制链接]

1

主题

1

帖子

29

积分

新手上路

Rank: 1

积分
29
QQ
15519 84kele 发表于 2018-5-18 07:01:46
xmppStreamDidDisconnect: Error Domain=GCDAsyncSocketErrorDomain Code=7 "Socket closed by remote peer" UserInfo=0x16e241a0 {NSLocalizedDescription=Socket closed by remote peer}




- (void)sendMessage{
//    GCDAsyncSocket *asyncSocket = [[GCDAsyncSocket alloc]init];
//    
//    [asyncSocket readDataWithTimeout:-1 tag:0];
NSLog(@"初始化链接");
XMPPMessage *message = [XMPPMessage messageWithType:@"chat" to:self.toJID];
    [message addBody:self.messageTextField.text];
    [[[self appDelegate] xmppStream] sendElement:message];  
NSLog(@"发送1");
}


问题描述:


1:登陆的时候可以登陆获取好友列表
2:当指定某一个uid用户名发送消息(string 字符串文字)就会断开链接 
3:红色字体注释掉 没有这个问题 但消息发不出了 因为没有调用 sendElement:message]


环境:
1: xcode 6.1
2: xmpp openfire 
3:真机调试




demo:





下载的这个demo

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x




上一篇:求助,在界面跳转时崩溃his class is not key value coding-compliant for the key us ...
下一篇:XMPP如何获取离线消息
楼主热帖
yuchi800420 发表于 2018-5-18 08:19:55
换个demo 试试
回复

使用道具 举报

tinker898 发表于 2018-5-18 09:27:55
引用
引用第3楼zc09v于2015-02-27 10:30发表的  :
你看看xmppStream的代理类里有没有实现这个方法
- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
{
    DDLogVerbose(@"%@: %@ - %@", THIS_FILE, THIS_METHOD, [iq elementID]);
    
....... [url=http://www.cocoachina.com/bbs/job.php?action=topost&tid=286036&pid=1247371][/url]





已找到原因  要看服务端那边有没有什么配置 发送的时候服务端接受数据的问题 close了  所以掉线

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

longlong 发表于 2018-5-18 09:34:58
ssdsdsdsdsdsds
回复

使用道具 举报

caiye 发表于 2018-5-18 09:37:45
你看看xmppStream的代理类里有没有实现这个方法
- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
{
    DDLogVerbose(@"%@: %@ - %@", THIS_FILE, THIS_METHOD, [iq elementID]);
   
    //NSLog(@"收到iq:%@",iq);
    if (iq.isGetIQ)
    {
        NSXMLElement *query = iq.childElement;
        if ([query.name isEqualToString:@"ping"])
        {
            XMPPIQ *pong = [XMPPIQ iqWithType:@"result" to:[iq from] elementID:[iq elementID]];
            [xmppStream sendElement:pong];
        }
    }
   
    return YES;
}
回复

使用道具 举报

wanwushaohui 发表于 2018-5-18 09:52:03
引用
引用第11楼dante于2015-03-02 15:03发表的 回 9楼(zxciop110) 的帖子 :
请教楼主,服务端的这个配置在哪里改啊?我在管理页面试了半天都没搞定,多谢啦
[url=http://www.cocoachina.com/bbs/job.php?action=topost&tid=286036&pid=1249392][/url]





服务端的还清楚  我的那个是后台那边改了发送消息的时候xml文件的格式中有json封装  所以导致和后台数据不匹配导致断开

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

hua 发表于 2018-5-18 10:01:17
看看用户名的域是不是写错了
回复

使用道具 举报

qweasd 发表于 2018-5-18 10:25:39
引用
引用第3楼zc09v于2015-02-27 10:30发表的  :
你看看xmppStream的代理类里有没有实现这个方法
- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
{
    DDLogVerbose(@"%@: %@ - %@", THIS_FILE, THIS_METHOD, [iq elementID]);
    
....... [url=http://www.cocoachina.com/bbs/job.php?action=topost&tid=286036&pid=1247371][/url]





问题描述: 当点击发送的时候  就会自动的断开了  一发送就会掉线了  
看一下我的问题demo  我用的别人的demo测试   登陆可以的  就是发送消息的时候就会断开了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

wty1983 发表于 2018-5-18 10:37:33
引用
引用第9楼zxciop110于2015-02-27 14:53发表的  :




已找到原因  要看服务端那边有没有什么配置 发送的时候服务端接受数据的问题 close了  所以掉线
....... [url=http://www.cocoachina.com/bbs/job.php?action=topost&tid=286036&pid=1247619][/url]





怎么解决的啊,可以告知一下吗???

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

风雪无量 发表于 2018-5-18 10:58:43
引用
引用楼主zxciop110于2015-02-25 17:06发表的 ios xmpp openfire socket长链接的问题 心跳断开了 :

xmppStreamDidDisconnect: Error Domain=GCDAsyncSocketErrorDomain Code=7 "Socket closed by remote peer" UserInfo=0x16e241a0 {NSLocalizedDescription=Socket closed by remote peer}



....... [url=http://www.cocoachina.com/bbs/job.php?action=topost&tid=286036&pid=tpc][/url]





问题描述
3:消息发不出去  但没有断开链接  心跳有问题

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则