`

XMPP连接人人网

 
阅读更多

seesmic-as3-xmppXMPP在ActionScript脚本上的一个实现。或许更加出名的是xiff这个框架,但是目前它并不支持TLS加密,所以需要要TLS支持的时候,更好用的是seesmic-as3-xmpp

人人网的IM工具校内通是基于XMPP协议进行通信的,根据网络上各路神仙的指示,使用基于XMPP框架的API可以很方便的更新一条状态。那么,在我使用桌面工具Twitter Air更新twitter的时候也可以同步更新到人人网,虽然人人网提供了REST API供应用程序调用,但是它们的验证机制明显需要花费更多的时间。

要想成功地连接到人人网,账号密码是必不可少的,人人网用户注册账号是Email地址,Email地址前的用户名无法保证唯一性,所以人人网用户都有一个额外的数字标识,就像QQ号一样,登陆之后可以从浏览器地址中得到该标识,例如http://www.renren.com/Home.do?id=9527这个用户的ID是9527。在进行XMPP连接前,要设置连接的JID, PASSWORD和SERVER三个值,RFC 3920中规定一个完整的JID应该是id@domain/resource这样一个形式,resource可以作为一个账户多处登陆的会话ID。按照这个规定,人人网用户9527的JID则是9527@talk.xiaonei.com。

下面在AIR中试着更新人人网的状态。打开Flash Builder新建一个AIR工程,将seesmic-as3-xmpp加入到编译路径,工程代码大致如下(MXML省略):

01 import com.hurlant.crypto.tls.TLSConfig;
02 import com.hurlant.crypto.tls.TLSEngine;
03 import com.hurlant.crypto.tls.TLSEvent;
04 import com.hurlant.crypto.tls.TLSSocket;
05 import com.seesmic.as3.xmpp.XMPP;
06 import com.seesmic.as3.xmpp.XMPPEvent;
07
08 varxmpp:XMPP;
09 privatefunctioninit():void{
10 xmpp=newXMPP("USER_ID@talk.xiaonei.com","USER_PASSWORD","talk.xiaonei.com");
11 xmpp.addEventListener(XMPPEvent.SESSION, handleSession,false,0,true);
12 xmpp.setupTLS(TLSEvent,TLSConfig,TLSEngine,TLSSocket);
13 xmpp.connect();
14 }
15 privatefunctionhandleSession(e:XMPPEvent):void {
16 varstatus:String="a presence sent by AIR using XMPP protocol";
17 xmpp.sendPresence(status);
18 }

设置好正确的ID和密码,编译运行,然后登陆人人网就会发现状态已经更新了。have fun!

分享到:
评论

相关推荐

    xmpp协议介绍,XMPP体系架构

    XMPP体系架构 XMPP server:其内核是一个XMPP路由器,完成基本组件间的数据包交换和路由。 功能: 1.会话管理器:负责客户端...4.服务器连接器:管理xmpp服务器之间的连接 5.传输器:建立xmpp服务器与非xmpp服务器通信

    ios上的xmpp安全连接示例程序

    ios上的xmpp安全连接示例程序,能获取在线状态,在线列表,收发短消息

    xmpp协议说明ppt

    xmpp协议介绍PPT,详细介绍了XMPP核心协议方方面面

    android的XMPP客户端

    android的XMPP客户端

    xmpp协议和xmpp扩展协议

    xmpp协议和xmpp扩展协议,chm格式

    Android资料_XMPP

    基于XMPP的多方通信系统研究与实现.pdf 基于XMPP的P2P即时通信系统的研究及实现.kdh 基于SIMPLE和XMPP协议的移动IM研究.pdf XMPP研究与应用.pdf XMPP协议研究及其在IM系统群组通信中的应用.pdf XMPP协议分析及客户端...

    xmpp framework

    XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。因此,基于XMPP的应用具有超强的可扩展性。经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求,以及在XMPP的顶端建立如内容发布系统和基于地址...

    erlang分布式 XMPP Server.ppt

    erlang分布式 XMPP Seerlang分布式 XMPP Serverrvererlang分布式 XMPP Servererlang分布式 XMPP Server

    Practical.XMPP.1785287982

    Learn about the fundamentals of XMPP and be able to work with the core functionality both server-side and in the browser Build a simple 1-to-1 chat (the "Hello World" of XMPP), explore multi-user chat...

    XMPP协议分析-原理篇.pdf

    XMPP协议分析,xmpp是即时通讯IM中比较普遍的应用

    xmpp即时通讯

    xmpp

    XMPP_协议介绍

    关于XMPP协议的说明及介绍,XMPP体系结构的组成,XMPP原理等的说明

    XMPP_API.chm

    xmpp api文档

    XMPP协议中文参考指南

    XMPP的核心功能定义在Extensible Messaging and Presence Protocol (XMPP): Core [XMPP-CORE|XMPP文档列表/XMPP正式RFC标准/RFC3920]. 这些功能 -- 主要是 XML流, 使用 TLS和SASL,以及流的根元素之下的, , 和 <iq/> ...

    xmpp客户端源代码

    xmpp客户端源代码

    Android聊天项目D3Xmpp.zip

    下面说xmpp类的作用 XmppConnectionListerner是xmpp的连接状态的listener,比如断线等XmppMessageInterceptor是发出消息的listener,在此拦截并持久化聊天纪录XmppMessageListener是收到消息的listener,在此拦截并...

    XMPP客户端Java类库:Smack

    Smack是一个开源的、易于使用的XMPP客户端Java类库,提供了一套可扩展的API。

    xmpp:用于PHP的XMPP协议连接库(Jabber)

    用于PHP的XMPP协议连接库(Jabber)。 系统要求 PHP最低5.6或最低7.0 psr /日志 (可选)psr / log-implementation-类似于用于记录日志的monolog / monolog 安装 是Composer的新手吗? 阅读。 将以下内容添加到您...

    QT xmpp client 仿照 psi

    QT xmpp client 仿照 psi

Global site tag (gtag.js) - Google Analytics