ios xmpp研究探索:发送文本消息

简介:
/*
  发送消息的格式
 <message type="chat" to="hehe@example.com">
   <body>Hello World!<body />
 <message />
 */
- (void)sendText:(NSString *)text toJid:(NSString *)jidString completion:(HYBCompletionBlock)completion {
   self.sendMessageBlock = completion;
   
  NSXMLElement *body = [NSXMLElement elementWithName:@"body"];
  [body setStringValue:text];
  
  NSXMLElement *message = [NSXMLElement elementWithName:@"message"];
  [message addAttributeWithName:@"type" stringValue:@"chat"];
  
   if (![jidString hasSuffix:kServer]) {
     jidString = [NSString stringWithFormat:@"%@@%@", jidString, kServer];
   }
   
  [message addAttributeWithName:@"to" stringValue:jidString];
  [message addChild:body];
  [self.xmppStream sendElement:message];
}

消息节点的结构是这样的:

 <message type="chat" to="hehe@example.com">
   <body>Hello World!<body />
 <message />

在发送后,会在代理中回调:

- (void)xmppStream:(XMPPStream *)sender didSendMessage:(XMPPMessage *)message {
  if (self.sendMessageBlock) {
    self.sendMessageBlock(YES, nil);
  }
}

- (void)xmppStream:(XMPPStream *)sender didFailToSendMessage:(XMPPMessage *)message error:(NSError *)error {
  if (self.sendMessageBlock) {
    self.sendMessageBlock(NO, [error description]);
  }
}

结束:

话不多说了,功能简单,高级功能就不深入了,等到有机会做相关项目时,再深入研究研究。


想要源码,猛击这里:https://github.com/632840804/IOSXMPPDemoByJackyHuang


目录
相关文章
|
7月前
|
iOS开发
iOS中如何显示后台返回的带有html标签的富文本字符串
iOS中如何显示后台返回的带有html标签的富文本字符串
68 0
|
API iOS开发 开发者
iOS文本布局探讨之三——使用TextKit框架进行富文本布局
iOS文本布局探讨之三——使用TextKit框架进行富文本布局
412 0
iOS文本布局探讨之三——使用TextKit框架进行富文本布局
|
自然语言处理 搜索推荐 iOS开发
iOS MachineLearning 系列(19)—— 分析文本中的问题答案
本篇文章将介绍Apple官方推荐的唯一的一个文本处理模型:BERT-SQuAD。此模型用来分析一段文本,并根据提供的问题在文本中寻找答案。需要注意,BERT模型不会生成新的句子,它会从提供的文本中找到最有可能的答案段落或句子。
202 0
iOS MachineLearning 系列(19)—— 分析文本中的问题答案
|
人工智能 自然语言处理 API
iOS MachineLearning 系列(10)—— 自然语言分析之文本拆解
本系列的前几篇文章介绍了iOS中有关图像和视频处理的API,视觉处理主要有Vision框架负责,本篇起,将介绍在iOS中Machine Learning领域相关的自然语言处理框架:NaturalLanguage。
184 0
|
iOS开发
iOS开发-聊天气泡的绘制和聊天消息列表
iOS开发-聊天气泡的绘制和聊天消息列表
252 0
iOS开发-聊天气泡的绘制和聊天消息列表
|
iOS开发
iOS多线程的初步研究-- dispatch同步
GCD提供两种方式支持dispatch队列同步,即dispatch组和信号量。
184 0
|
存储 缓存 开发者
iOS-底层原理 14:消息流程分析之 动态方法决议 & 消息转发
iOS-底层原理 14:消息流程分析之 动态方法决议 & 消息转发
328 0
iOS-底层原理 14:消息流程分析之 动态方法决议 & 消息转发
|
缓存 算法 C++
iOS-底层原理 13:消息流程分析之慢速查找
iOS-底层原理 13:消息流程分析之慢速查找
149 0
iOS-底层原理 13:消息流程分析之慢速查找
|
存储 缓存 自然语言处理
iOS-底层原理 12:消息流程分析之快速查找
iOS-底层原理 12:消息流程分析之快速查找
102 0
iOS-底层原理 12:消息流程分析之快速查找
|
搜索推荐 iOS开发
iOS小技能:消息推送扩展的使用
iOS小技能:消息推送扩展的使用
560 0
iOS小技能:消息推送扩展的使用