• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - XMPP IOS Openfire 在发送元素后断开连接

[复制链接]
菜鸟教程小白 发表于 2022-12-12 15:55:48 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

发送自定义元素后,我断开了连接。有什么办法吗?我的连接代码

  [self addDelegate:self delegateQueue:dispatch_get_main_queue()];

[self setHostName"bowerchat.com"];
[self setHostPort:5222];

self.myJID = [XMPPJID jidWithString:[NSString stringWithFormat"%@@bowerchat.com",UD_getObj(@"myPhoneNumber")]];

NSError * error;
[self connectWithTimeout:300 error:&error];

断线问题

Domain=GCDAsyncSocketErrorDomain Code=7 "Socket closed by remote peer" 

发现问题后,我将@"type"参数更改为@"type2",现在它正在工作...但我找不到原因?

-(void)sendMessageToServerNSDictionary*)paraDict{
NSString * userPhone = [[DBHelper sharedObject]getUserPhone:paraDict[@"friend_id"]];
NSXMLElement *a = [NSXMLElement elementWithName"request" xmlns"urn:xmpp:receipts"];
if(paraDict[@"type"] != nil){
NSMutableDictionary * k = [[NSMutableDictionary alloc]initWithDictionary:paraDict];

    NSString * typeValue = [k[@"type"]copy];
    [k removeObjectForKey"type"];
    [k setObject:typeValue forKey"type2"];

paraDict = k;
}
XMPPElement *e = [[XMPPElement alloc] initWithName"message"];
for(NSString * key in paraDict.allKeys){
    [e addAttributeWithName:key stringValue:paraDict[key]];
}
[e addAttributeWithName"to" stringValue:getJabberString(userPhone)];
[e addAttributeWithName"from" stringValue:getMyJabberString];
[e addChild:a];
NSLog(@"%@",[e attributesAsDictionary]);
[self sendElement:e];

}



Best Answer-推荐答案


消息类型属性内置于 XMPP 协议(protocol)中。它在 XMPP 上具有精确的含义,您不能将所需的内容作为 type 消息属性的值。根据 XMPP RFC 中的定义,唯一可能的类型是:

  • 聊天
  • 错误
  • 群聊
  • 标题
  • 正常

您不能在消息类型中添加任何内容,或者实际上,否则服务器应该断开您的连接。

引用:http://xmpp.org/rfcs/rfc6121.html#message-syntax-type

关于ios - XMPP IOS Openfire 在发送元素后断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31792724/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap