Flex2基于XMPP的chat程序(二)

系统 2123 0

先说说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

 

Flex2基于XMPP的chat程序(二)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论