Flex2基于XMPP的chat程序(二)

本文介绍XIFF3的最新进展及其与Openfire的集成方法,包括登录流程、好友列表管理、消息处理及用户注册等核心功能,并提供XIFF3 API链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先说说XIFF的进展,igniterealtime.org 自从2007-3-3删除XIFF2后,一直在进行XIFF3的开发,现在每天都有更新,进展看似顺利。而且有了个3.4.2版本,这篇文章中用的就是这个xiff的3.4.2版本.

使用 Openfire 3.4.3 版本

 

 

1.登录

var _conn : XMPPSocketConnection;

_conn.server = Server Name;
_conn.username = Username;
_conn.password = Password;

_conn.connect("standard");

 

连接成功会触发 ConnectionSuccessEvent.CONNECT_SUCCESS
登录成功会触发 LoginEvent.LOGIN

 

2.处理Roster

var _roster = new Roster();
_roster.connection = _conn;

Roster需要监听的几个重要event

RosterEvent.SUBSCRIPTION_REQUEST 当别人要加你为好友时
RosterEvent.USER_UPDATED 当你的好友更新了状态时

添加一个联系人
_roster.grantSubscription(联系人JID, true);

拒绝别人添加好友的请求
_roster.denySubscription(请求人JID);

 

3.Message处理
需要监听 _conn.addEventListener(MessageEvent.MESSAGE, messageHandler);
当收到消息时触发 MessageEvent.MESSAGE
var m:Message = event.data as Message;
m.from 消息发送者
m.body 消息内容
m.type 消息类型 (Message.CHAT_TYPE, Message.GROUPCHAT_TYPE, Message.ERROR_TYPE 等)

 

发送消息

var message : Message = new Message(联系人JID, null, null, null, Message.CHAT_TYPE, null);
message.from = 发信人JID;
message.body = 消息内容
//message.htmlBody = 

_conn.send(message);

 

4.注册用户

创建一个用户

var regdata : Object = {};
regdata.username = 用户名
regdata.password = 密码
regdata.email = 邮箱

_conn.sendRegistrationFields( regdata, null );

_conn需要监听 RegistrationSuccessEvent.REGISTRATION_SUCCESS, 当注册成功时触发.

 

5.Cross Domain

openfire的管理平台中写着: 端口5229  Flash Cross Domain
Security.loadPolicyFile("xmlsocket://Servername:5229");

 

openfire的crossdomain.xml是动态生成的,可以telnet看一下,在命令行中运行
telnet localhost 5229
会看到下面的内容

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
	<allow-access-from domain="*" to-ports="5222" />
</cross-domain-policy>

 

6.尚待解决的问题
xiff现在还没实现XEP-0124
xiff直接连GTalk有问题(talk.google.com:5222)

 

参考

xiff 3.4.2
http://svn.igniterealtime.org/svn/repos/xiff/tags/xiff_3_4_2
xiff 3 API
http://paazio.wippiespace.com/xiff3doc/
中文翻译计划
http://wiki.jabbercn.org/space/start
Flex 2 with XIFF
http://www.darkcoding.net/software/xmpp-in-your-browser-flex-2-with-xiff/
XIFF ActionScript 3.0 Demo
http://www.velloff.com/?p=38

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值