加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Libstrophe 库理解

发布时间:2020-12-16 09:29:16 所属栏目:百科 来源:网络整理
导读:libstrophe库链接 http://strophe.im/libstrophe/ libstrophe库在github上的链接 https://github.com/metajack/libstrophe LIBSTROPHE libstrophe是一个 XMPP 客户端和组件通信的C库。其目标是建立一个可移植的,可用快捷的,可靠的,文档齐全的,并能完全实

libstrophe库链接http://strophe.im/libstrophe/

libstrophe库在github上的链接https://github.com/metajack/libstrophe

LIBSTROPHE


libstrophe是一个XMPP客户端和组件通信的C库。其目标是建立一个可移植的,可用快捷的,可靠的,文档齐全的,并能完全实现XMPP规范的开发工具库。

主要有两个部分组成:

1. 对基于XMPP信息体的解析与组装

2. 实现基于XMPP协议与XMPP SERVER或者其他XMPP实体间的通讯


eg:数据流

<iq from= "google.com" type="set" id="1">

<pubsub xmlns="http://jabber.org/protocol/pubsub">

<publish node="http://xmppgoogle.org/google_event">

<item>

<status xmlns="http://xmppgoogle.org/google/commands/objects/status" object_type="dev" event="added" from="google.com">

<object object_type="dev" object_id="devid" owner_id="owner_id">

</status>

</item>

</publish>

</pubsub>

</iq>


eg:C语言

void send_iq(xmpp_conn_t *const conn,)

{

xmpp_stanza_t *iq,*pubsub,*publish,*item,*status,*object;

iq = xmpp_stanza_new(ctx);

xmpp_stanza_set_name(iq,"iq");

xmpp_stanza_set_attribute(iq,"from","google.com");

xmpp_stanza_set_type(iq,"set");

xmpp_stanza_set_id(iq,"1");

pubsub = xmpp_stanza_new(ctx);

xmpp_stanza_set_name(pubsub,"pubsub");

xmpp_stanza_set_ns(pubsub,"http://jabber.org/protocol/pubsub");

xmpp_stanza_add_child(iq,pubsub);

item= xmpp_stanza_new(ctx);

xmpp_stanza_set_name(item,"item");

xmpp_stanza_add_child(publish,item);


status = xmpp_stanza_new(ctx);

xmpp_stanza_set_name(status,"status");

xmpp_stanza_set_ns(status,"http://xmppgoogle.org/google/commands/objects/status");

xmpp_stanza_set_attribute(status,"object_type","dev");

xmpp_stanza_set_attribute(status,"event","added");

xmpp_stanza_set_attribute(status,"google.com");

xmpp_stanza_add_child(item,status);

object= xmpp_stanza_new(ctx);

xmpp_stanza_set_name(object,"object");

xmpp_stanza_set_attribute(object,"dev");

xmpp_stanza_set_attribute(object,"object_id","devid");

xmpp_stanza_set_attribute(object,"owner_id","owner_id");

xmpp_stanza_add_child(status,object);

xmpp_stanza_release(object);

xmpp_stanza_release(status);

xmpp_stanza_release(item);

xmpp_stanza_release(publish);

xmpp_stanza_release(pubsub);

xmpp_stanza_send(conn,iq);

xmpp_stanza_release(iq);

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读