ios xmpp研究探索:接收消息

简介:

在接收到好友发过来的消息时,

如果是正在与之聊天,则需要更新

当前聊天列表,即插入一条新的消息记录:

- (void)xmppStream:(XMPPStream *)sender didReceiveMessage:(XMPPMessage *)message {
  NSLog(@"xmpp stream 接收到好友消息:%@", [message XMLString]);
  
  if (self.getNewMessageBlock) {
    XHMessage *newMessage = [[XHMessage alloc] initWithText:message.body
                                                     sender:message.fromStr
                                                  timestamp:[NSDate date]];
    self.getNewMessageBlock(newMessage, message.from.bare);
  }
}

接收到消息时,把消息实体转换成模型,返回新接收的消息对象,并返回消息接收者。

那么我们在界面处理时,需要判断一下是否是我正在与好友聊天的消息:

  typeof(self) weakSelf = self;
  [HYBXMPPHelper shared].getNewMessageBlock = ^(XHMessage *newMessage, NSString *receiver) {
    if ([receiver isEqualToString:weakSelf.jidString]) {
      [weakSelf addMessage:newMessage];
      [weakSelf.messageTableView reloadData];
    }
  };

这里是通过使用block的方式来处理,没有登录通知或者代理,如果设置了接收到新消息的block,

那么在接收到新的消息时,会回调。


目录
相关文章
|
移动开发 小程序 Android开发
支付宝小程序IOS连接mqtt接收AMQJS0007E Socket error
支付宝小程序IOS连接mqtt接收AMQJS0007E Socket error
173 0
|
编解码 iOS开发 流计算
调用Live555接收RTSP直播流,转换为Http Live Streaming(iOS直播)协议
调用Live555接收RTSP直播流,转换为Http Live Streaming(iOS直播)协议
505 1
|
iOS开发
iOS开发-聊天气泡的绘制和聊天消息列表
iOS开发-聊天气泡的绘制和聊天消息列表
252 0
iOS开发-聊天气泡的绘制和聊天消息列表
|
iOS开发
iOS多线程的初步研究-- dispatch同步
GCD提供两种方式支持dispatch队列同步,即dispatch组和信号量。
183 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小技能:消息推送扩展的使用
559 0
iOS小技能:消息推送扩展的使用
|
PHP 数据安全/隐私保护 iOS开发
分分钟搞定IOS远程消息推送(二)
分分钟搞定IOS远程消息推送
409 0
分分钟搞定IOS远程消息推送(二)
|
存储 Android开发 数据安全/隐私保护
分分钟搞定IOS远程消息推送(一)
分分钟搞定IOS远程消息推送
249 0
分分钟搞定IOS远程消息推送(一)