WAP之家:为您提供最全最新的WAP技术,CP.SP.3G等行业资讯。 WAP之家交流论坛全新开放 点击进入>>
WAP资讯 | 3G动态 | SP动态 | 运营商动态 | 内容商动态 | 制造商动态 | 论坛讨论>> 每次自动访问
WAP技术 | WAP源码 | 手机编程 | 手机源码 | 无线技术 | J2ME技术 | 手机软件 添加到收藏夹
IVR技术 | SP资料 | SMS MMS技术 | 商业方案 | IVR下载 | 书籍教程 | 工具软件 语言:繁體中文

WAP之家技术文章手机编程Symbian程序开发Jabber即时通讯客户端(五)

Jabber即时通讯客户端(五)
作者:huwell  来源:huwell  发布时间:2006-7-28 14:51:49
器,第二个用于保存XML元素名称,缺省情况下,它们会以大写形式出现。第三个是数组,用以保存当前元素的属性及对应值。有了它,可以利用PHP特有的each逐个读出来。

  我们在StartElementHandler中将本次要用到的元素属性赋值,以便下面的调用判断,如登录中就是要对$jabber_type值是否为result进行判断,如果是表明登录成功,如果不是那就是登录失败了。

  接下来是GetRoster()行为,使用它可以获得当前用户的好友列表,我们发送:

  <iq type="get"><query xmlns="jabber:iq:roster"/></iq>

  给服务器,即索要当前会话用户的好友列表,然后服务器会返回一系列数据流,里面包括了好友的名称,JID(jabber唯一标识,就好象是QQ中的数字号码)以及认证状态,如果还没有通过好友的认证,那subscription属性就会为none,WellJabber中采用了$jabber->roster成员变量来接收这一系列的值。需要注意的是每次成员函数调用时都使用同一个连接,i.e.$jabber->connect,所以单个行为不要调用fclose来关闭它,可以在类的析构函数中调用。

  SenMessage()发送消息给好友,这里比较简单,当获取好友的JID时,发送相应的数据流即可,这里要注意的是,发送人不需要自己填写,在经过服务器处理后,会由服务器来添加“from”属性,这个是为了防止发送垃圾信息,前面已经说过了。

  最后是登记新的用户帐号,这里分四步:
 
  首先,要向服务器发送一个连接请求,就如同登录时所发送的一样;

  接着,客户端会收到回应的数据流,这里包含了重要的id,是标识本次会话的唯一值;这时,我们要发送本次想注册的用户名,resource名及密码,注意这里的<iq>请求要包含上面得到的id,而且密码应该采用加密的形式,但WellJabber只是一个演示程序,所以采用了明文发送的形式;

  最后,服务器返回<iq di=’sesseion id’type=’result’>
代表本次登记注册成功。这样就完成了一个新用户的注册。

  然后就可以使用该帐号进行登录了。注意,这里要重新与服务器打开一个连接,原先的连接已经不能用来登录了。

  PHP版的WellJabber所拥有的功能已经描述完了。当然,从它来看Jabber工程只能是管中窥豹,Jabber中许多有用的思想和特点它都没有体现,譬如说实时接收、文件交换、邮件转发、聊天室系统甚至是跨平台交流(如mobile)。但由于Jabber开放和易用的特性,我们看到,任何人都可以用自己喜欢的语言去处理jabber、去理解jabber,这么博大包容的特性也许就是它最吸引人的地方,Jabber的前途将无可限量。

上一页  [1] [2] 

[] [返回上一页] [打 印]
文章评论

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码