Libjingle应用之二——发送和查询在线信息
2008-03-06 21:58
330 查看
当登陆到XMPP服务器之后,需要将当前自己的状态发送给服务器,同时请求其朋友列表的在线信息,服务器会将朋友列表的JID和在线信息作为应答发送回来,利用收到的JID和在线信息应答,可以向另一个用户发起连接请求。服务器会一直发送状态通知直到连接结束。
Libjingle提供两个XmppTask对象发送和查询状态:
1)PresenceOutTask向服务器发送状态信息,状态信息存放在Status对象中。
2) PresencePushTask接收服务器发来的状态信息,当调用PresencePushTask::Start时启动,同时客户端需要连接到SignalStatusUpdate信号,当接收到一个状态信息时,信号将会被触发。
下面的步骤描述如何发送和接收状态信息:
1)注册接收状态通知。实例化PresencePushTask,启动,连接到OnStatusUpdate信号,由于服务器可能在接收到客户端状态信息后马上返回当前用户在线状态通知,为了避免消息丢失,在发送状态信息之前需要先创建监听器。
presence_push_ = new buzz::PresencePushTask(xmpp_client_);
presence_push_->SignalStatusUpdate.connect(this, &OnStatusUpdate);
presence_push_->Start();
2)填充Status状态信息。
buzz::Status my_status;
my_status.set_jid(xmpp_client_->jid());
my_status.set_available(true);
my_status.set_invisible(false);
my_status.set_show(buzz::Status::SHOW_ONLINE);
my_status.set_priority(0);
my_status.set_know_capabilities(true);
my_status.set_phone_capability(true);
my_status.set_is_google_client(true);
my_status.set_version("1.0.0.66");
3)利用PresenceOutTask将状态信息发送给服务器。
buzz::PresenceOutTask* presence_out_ = new buzz::PresenceOutTask(xmpp_client_);
presence_out_->Send(my_status);
presence_out_->Start();
当完成发送和接收状态信息后,就可以开始发送和接收会话请求了,且听下回分解。
Libjingle提供两个XmppTask对象发送和查询状态:
1)PresenceOutTask向服务器发送状态信息,状态信息存放在Status对象中。
2) PresencePushTask接收服务器发来的状态信息,当调用PresencePushTask::Start时启动,同时客户端需要连接到SignalStatusUpdate信号,当接收到一个状态信息时,信号将会被触发。
下面的步骤描述如何发送和接收状态信息:
1)注册接收状态通知。实例化PresencePushTask,启动,连接到OnStatusUpdate信号,由于服务器可能在接收到客户端状态信息后马上返回当前用户在线状态通知,为了避免消息丢失,在发送状态信息之前需要先创建监听器。
presence_push_ = new buzz::PresencePushTask(xmpp_client_);
presence_push_->SignalStatusUpdate.connect(this, &OnStatusUpdate);
presence_push_->Start();
2)填充Status状态信息。
buzz::Status my_status;
my_status.set_jid(xmpp_client_->jid());
my_status.set_available(true);
my_status.set_invisible(false);
my_status.set_show(buzz::Status::SHOW_ONLINE);
my_status.set_priority(0);
my_status.set_know_capabilities(true);
my_status.set_phone_capability(true);
my_status.set_is_google_client(true);
my_status.set_version("1.0.0.66");
3)利用PresenceOutTask将状态信息发送给服务器。
buzz::PresenceOutTask* presence_out_ = new buzz::PresenceOutTask(xmpp_client_);
presence_out_->Send(my_status);
presence_out_->Start();
当完成发送和接收状态信息后,就可以开始发送和接收会话请求了,且听下回分解。
相关文章推荐
- ArcGIS在线应用介绍(3)NOOA国家冰中心全球海冰信息查询地图
- WMI技术介绍和应用——查询硬件信息
- WMI技术介绍和应用——查询正在运行的进程信息
- WMI技术介绍和应用——查询正在运行的线程信息
- 使用GraceNote Web API开发Mac查询音乐信息应用
- 分页查询产品信息案例;第一步:创建产品页面,向服务器发送请求(获取所有产品信息)
- python 工具化查询苹果送审页面iTunes Connect的应用的各种信息
- Android Tasker应用之自动查询并显示话费流量套餐信息
- [置顶] 实现网站应用钉钉扫码登录,及查询用户详细信息
- 【在线应用】篇六:在线地理监测演示系统,展现长时间序列植被变化信息
- 前台发送ajax请求查询信息,并为input输入框赋值
- android菜鸟学习笔记29----Android应用向用户发送提示信息的方式总结
- WMI技术介绍和应用——查询快捷方式、映射磁盘和虚拟内存信息
- WMI技术介绍和应用——查询系统信息和补丁包信息
- 代理模式(二):代理模式应用实例(收费商务信息查询系统)
- WMI技术介绍和应用——查询桌面信息
- SQL2000系统表、存储过程、函数的功能介绍及应用2009年01月21日 星期三 11:38虽然使用系统存储过程、系统函数与信息架构视图已经可以为我们提供了相当丰富的元数据信息,但是对于某些特殊的元数据信息,我们仍然需要直接对系统表进行查询。因为SQL
- 学生信息的添加与查询(java集合框架应用)
- 查询能启动的应用的流量信息
- PS应用EX之:查询邮箱信息get-malbox