美文网首页
XMPP协议 -- XMPPvCard

XMPP协议 -- XMPPvCard

作者: CoderChan | 来源:发表于2018-08-09 11:26 被阅读0次

激活模块:

_vCardStorage = [XMPPvCardCoreDataStorage sharedInstance];
_vCardTempModule = [[XMPPvCardTempModule alloc] initWithvCardStorage:_vCardStorage];
_vCardAvatarModule = [[XMPPvCardAvatarModule alloc] initWithvCardTempModule:_vCardTempModule];
[_vCardTempModule addDelegate:self delegateQueue:dispatch_get_main_queue()];
[_vCardAvatarModule addDelegate:self delegateQueue:dispatch_get_main_queue()];
[_vCardTempModule activate:_xmppStream];
[_vCardAvatarModule activate:_xmppStream];

更新名片信息:

/// 更新名片信息
- (void)updateVCardMsg
{
    XMPPvCardTemp *vcard = self.vCardTempModule.myvCardTemp;
    /// 自定义xml扩展名片内容
    DDXMLNode *node1 = [DDXMLNode elementWithName:@"key" stringValue:@"13877977999"];
    DDXMLNode *node2 = [DDXMLNode elementWithName:@"key" stringValue:@"http://imgtu.4934501486627131.jpg"];
    DDXMLNode *node3 = [DDXMLNode elementWithName:@"key" stringValue:@"美国"];
    DDXMLNode *node4 = [DDXMLNode elementWithName:@"key" stringValue:@"广东"];
    DDXMLNode *node5 = [DDXMLNode elementWithName:@"key" stringValue:@"广州"];
    DDXMLNode *node6 = [DDXMLNode elementWithName:@"key" stringValue:@"男"];
    DDXMLNode *node7 = [DDXMLNode elementWithName:@"key" stringValue:@"aaaa"];
    vcard.nickname = @"nickname";
    [vcard addChild:node1];
    [vcard addChild:node2];
    [vcard addChild:node3];
    [vcard addChild:node4];
    [vcard addChild:node5];
    [vcard addChild:node6];
    [vcard addChild:node7];
    /// 向服务器更新名片
    [_vCardTempModule updateMyvCardTemp:vcard];
}

vCard代理:XMPPvCardTempModuleDelegate

代理在登录成功后 和 调用 [_vCardTempModule updateMyvCardTemp:vcard]; 方法后都会有一次回调。

/// 获取到个人信息
- (void)xmppvCardTempModule:(XMPPvCardTempModule *)vCardTempModule 
didReceivevCardTemp:(XMPPvCardTemp *)vCardTemp forJID:(XMPPJID *)jid {}

发送IQ消息, 获取名片内容:

/// 发送IQ消息, 获取名片内容
- (void)getVCardMsgWithUserID:(NSString *)userID
{
    XMPPIQ *iq = [XMPPIQ iqWithType:@"get"];
    XMPPJID *JID = [XMPPJID jidWithUser:userID domain:@"domain" resource:@"resource"];
    [iq addAttributeWithName:@"to" stringValue:JID.bare];
    NSXMLElement *element = [NSXMLElement elementWithName:@"vCard" xmlns:@"vcard-temp"];
    [iq addChild:element];
    [_xmppStream sendElement:iq];
}

发送IQ消息后都会在 代理方法有回调

- (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq
{

}

相关文章

  • XMPP协议 -- XMPPvCard

    激活模块: 更新名片信息: vCard代理:XMPPvCardTempModuleDelegate 代理在登录成功...

  • xmpp协议初识

    XMPP简介 XMPP协议简介 XMPP协议(Extensible Messaging and PresenceP...

  • XMPP - 协议简介

    要学习基于XMPP协议的IM开发,首先要熟悉XMPP协议本身。 XMPP协议的组成主要的XMPP 协议范本及当今应...

  • XMPP协议

    XMPP协议 XMPP(Extensible Messageing and Presence Protocol:可...

  • XMPP (小明屁屁?) 麦盖鬼?

    一. 麦盖系XMPP? 1.XMPP (可扩展通讯和表示协议) 2.XMPP是一个机遇XML的及时通讯协议, 官方...

  • 基于XMPP的即时通信系统的建立(四)— 协议详解

    Presence(http://www.cnblogs.com/jiyuqi/tag/xmpp/) 在XMPP协议...

  • XMPP与环信

    XMPP --> 环信1.XMPP是网络层基于TCP协议,数据层基于XML协议的即时通讯协议。所以要实现通讯的话,...

  • iOS------XMPP实现一个简单的聊天页面

    XMPP协议的优点: 开放-------XMPP协议是自由,开放,公开的,并且易于了解.而且在客户端,服务器,组件...

  • XMPP之Smack 介绍

    XMPP简介 原理 概述XMPP(可扩展消息处理现场协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(I...

  • IOS 问题合集 面试

    是否使用过XMPP,XMPP的实现? 环信是一个即时通信的服务提供商 环信使用的是XMPP协议,它是再XMPP的基...

网友评论

      本文标题:XMPP协议 -- XMPPvCard

      本文链接:https://www.haomeiwen.com/subject/updqbftx.html