美文网首页
iOS XMPP XEP-0060协议使用

iOS XMPP XEP-0060协议使用

作者: lionsom_lin | 来源:发表于2016-06-02 10:41 被阅读234次

一、简介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];
}

相关文章

  • iOS XMPP XEP-0060协议使用

    一、简介XEP-0060XEP-0060是一个XMPP协议扩展来实现实现通用的 发布-订阅 功能。这个协议使 XM...

  • iOS 的 XMPPFramework 简介

    XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议(RF...

  • XMPPFramework 简介

    XMPPFramework是一个OS X/iOS平台的开源项目,使用Objective-C实现了XMPP协议(RF...

  • xmpp协议初识

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

  • IOS 问题合集 面试

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

  • XMPP - 协议简介

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

  • XMPP协议

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

  • XMPPFramework使用记录(一)

    前言 最近公司需要我们使用XMPP协议,实现一个简单的IM模块。在此之前没有接触过IM相关技术,仅了解iOS可以通...

  • android消息推送 IM实现方案对比

    1、GCMGoogle的云消息服务,国内使用限制,放弃2、XMPP基于XMl协议的通讯协议,成熟,由于使用xml传...

  • Android中实现自定义XMPP消息包收发

    在Android平台实现XMPP即时通讯主要是使用asmack这个包,asmack是XMPP协议的实现。但是asm...

网友评论

      本文标题:iOS XMPP XEP-0060协议使用

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