iOS XMPP XEP-0060协议使用

一、简介XEP-0060
XEP-0060是一个XMPP协议扩展来实现实现通用的 发布-订阅 功能。这个协议使 XMPP实体能在一个pubsub服务创建节点(主题)并发布信息到那些节点上;然后一个事件通知(携带或未带载荷)被广播到所有订阅了该节点的实体. PubSub因此坚持了经典的观察者设计模式,并可以作为广泛应用的服务基础,包括新闻提要,内容整合,富出席信息,地理位置,工作流系统,网络管理系统,以及任何其他需要事件通知的应用。

二、文档
官方文档:https://xmpp.org/extensions/xep-0060.html
中文翻译文档:http://wiki.jabbercn.org/XEP-0060

三、代码块
创建订阅-推送对象

@property (nonatomic, strong) XMPPPubSub * xmppPubSub;

发布订阅由MT发布,所以此代码块只有订阅功能。

#pragma mark -- 推送、订阅回调

- (void)setupPubSub:(NSString *)MT_Sn
{
    //订阅 推送 模块
    NSString * pubsub_auto_domain_name = @"pubsub.auto.hooca.com.cn";
    XMPPJID * pubsub_jid = [XMPPJID jidWithString:pubsub_auto_domain_name];
    _xmppPubSub = [[XMPPPubSub alloc]initWithServiceJID:pubsub_jid];
    [_xmppPubSub activate:_xmppStream];
    [_xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()];
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString * myjid = [defaults objectForKey:MYRESJID];
    NSString * subnode = [NSString stringWithFormat:@"mt_%@_notify_node_id",MT_Sn];
    XMPPJID * myresjid = [XMPPJID jidWithString:myjid];
    [_xmppPubSub subscribeToNode:subnode withJID:myresjid];
}

- (void)cancelPubSub:(NSString *)MT_Sn
{
    //订阅 推送 模块
    NSString * pubsub_auto_domain_name = @"pubsub.auto.hooca.com.cn";
    XMPPJID * pubsub_jid = [XMPPJID jidWithString:pubsub_auto_domain_name];
    _xmppPubSub = [[XMPPPubSub alloc]initWithServiceJID:pubsub_jid];
    [_xmppPubSub activate:_xmppStream];
    [_xmppStream addDelegate:self delegateQueue:dispatch_get_main_queue()];
   
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    NSString * myjid = [defaults objectForKey:MYRESJID];
    NSString * subnode = [NSString stringWithFormat:@"mt_%@_notify_node_id",MT_Sn];
    XMPPJID * myresjid = [XMPPJID jidWithString:myjid];
//    [_xmppPubSub subscribeToNode:subnode withJID:myresjid];
    [_xmppPubSub unsubscribeFromNode:subnode withJID:myresjid];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,246评论 19 139
  • xmpp中文翻译计划: http://wiki.jabbercn.org/%E9%A6%96%E9%A1%B5 X...
    九天环佩阅读 520评论 0 3
  • XMPP简介 XMPP协议简介 XMPP协议(Extensible Messaging and PresenceP...
    不规则先生阅读 6,385评论 2 31
  • 我不喜欢 我不喜欢 我不喜欢现在的氛围 我在吃醋 我只能把自己最大化,专注 最大化 1.我站的角度 大局角度。 2...
    AABM阅读 148评论 0 0
  • 小时候我一直理解不了,别人的爸爸妈妈都能够每天在家里热闹温馨地过日子。 而我妈却总是很忙。一年在家的次数屈指可数。...
    五点30阅读 598评论 3 2