登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> 程序员学前班[不再更新,只读] >> 主题: [jopl]添加好友     [回主站]     [分站链接]
标题
[jopl]添加好友
clq
浏览(0) + 2008-10-30 14:42:58 发表 编辑

关键字:

[jopl]添加好友

MainSession.Roster.AddItem(sjid, snick, sgrp, true);

可加入一个好友.

--------------------------------------------------
然后它会调用这个:

constructor TRosterAddItem.Create(sjid, nickname, group: string; subscribe: boolean);
var
iq: TJabberIQ;
begin
inherited Create();

jid := sjid;
nick := nickname;
grp := group;
do_subscribe := subscribe;

iq := TJabberIQ.Create(MainSession, MainSession.generateID, Self.AddCallback);
with iq do begin
Namespace := XMLNS_ROSTER;
iqType := 'set';
with qTag.AddTag('item') do begin
setAttribute('jid', jid);
setAttribute('name', nick);
if group <> '' then
AddBasicTag('group', grp);
end;
end;
iq.Send;
end;

本质上是生成这样的一个 xml 节:













--------------------------------------------------
实际上这样对于 anyq 就可以加入组了,但是有时会 把一个人加入到两个组中,怎么样只加入一个组呢?

clq
2008-10-30 14:55:37 发表 编辑

在以上 xml 节中带 group 即是加入一个组,所用的协议为:

[url]
http://wiki.jabbercn.org/space/XMPP%E6%96%87%E6%A1%A3%E5%88%97%E8%A1%A8/XMPP%E6%AD%A3%E5%BC%8FRFC%E6%A0%87%E5%87%86/RFC3921

clq
2008-10-30 17:31:37 发表 编辑

http://www.wangchao.net.cn/bbsdetail_46791.html

中说:

"
  3、 另外,联系人接收到:
  (1) 一个’unsubscribe’的presence包
  (2) 一个“roster push”,指示Jabber用户的花名册条目的subscription为‘none’:
"

所以一个删除了的 ritem 的 ritem.Action = RIA_NONE


总数:2 页次:1/1 首页 尾页  
总数:2 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1