`
wangcheng
  • 浏览: 1467404 次
  • 性别: Icon_minigender_1
  • 来自: 青岛人在北京
社区版块
存档分类
最新评论

Flex2基于XMPP的chat程序(二)

阅读更多

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

 

  • 描述: jpg
  • 大小: 41.2 KB
分享到:
评论
6 楼 Tyler.He 2010-02-07  
你好。最近正在研究这个,想做一个。但找不到相关的很好的资料。
能指教一下吗?可以共享一下代码吗???heshenglin@foxmail.com
谢谢
5 楼 arlonlove 2009-10-06  
代码貌似不能共享,附件没有源码
4 楼 seaairland 2009-04-26  
请问 能否把源码共享一下 chenhui19850307@gmail.com
3 楼 cema0110 2008-09-17  
最近正在做这个。。。下载了你的例子看了一下。。里面还是有些功能实现不了。希望能分享一下您的源代码可以吗?谢谢了!
Email:cema0110@126.com
2 楼 cc0cc 2008-05-27  
http://my.iciba.com/im/
一起研究。。沟通沟通。。。cc0cc at hotmail.com
1 楼 gzcao 2008-05-16  
想学习学习,请问您的flex源码可以共享吗? 谢谢! 我的email地址: george_cao AT hotmail.com

相关推荐

    Flex实现的xmpp消息发送接收

    Flex是一种基于Adobe Flash Player或Adobe AIR的开源框架,用于创建富互联网应用程序(RIA)。它提供了丰富的用户界面组件和强大的数据连接能力,适用于构建跨平台的桌面和移动应用。在这个特定的场景中,"Flex实现...

    android xmpp chat 聊天程序

    在Android平台上构建XMPP聊天应用程序是一项常见的任务,XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,广泛用于即时通讯应用。本文将深入探讨如何利用Android技术和XMPP协议来...

    基于XMPP的即时通信程序

    5. **文件传输**:用户可以通过即时通信程序进行文件分享,这通常需要扩展XMPP协议以支持二进制数据的传输。 6. **推送通知**:对于移动设备,当用户不在应用前端时,可以通过推送服务接收到新消息的通知。 7. **...

    基于xmpp的安卓客户端高仿QQ

    在这个“基于xmpp的安卓客户端高仿QQ”项目中,开发者利用XMPP技术来创建一个类似于QQ的移动应用程序,让用户体验到类似的功能。 首先,让我们深入了解一下XMPP的核心概念。XMPP基于XML流,通过TCP连接提供稳定的...

    基于XMPP协议的Qt聊天程序

    【基于XMPP协议的Qt聊天程序】是一种使用XMPP(Extensible Messaging and Presence Protocol)标准进行即时通讯的应用,它的设计和实现充分利用了Qt库的强大功能。XMPP是一种开放且基于XML的通信协议,广泛用于即时...

    基于XMPP的webIm 实现

    基于XMPP协议的WEBIM 简单实现,如有开发openfire+spark/jwchat的可以参考

    基于XMPP的聊天项目

    【基于XMPP的聊天项目】是一个使用Android平台开发的聊天应用程序。XMPP(Extensible Messaging and Presence Protocol)是一种开放标准的即时通讯协议,它基于XML流传输,常用于实现聊天、在线状态管理等功能。这个...

    基于XMPP实现android客户端与服务器的交互(服务器、客户端源码)

    在IT行业中,实时通信协议(Real-Time Communication Protocol)在各种应用程序中扮演着至关重要的角色,尤其是在移动设备上。本文将深入探讨如何使用XMPP(Extensible Messaging and Presence Protocol)协议来构建...

    基于xmpp协议的多端即时通讯方案

    ### 基于XMPP协议的多端即时通讯方案 #### 一、开发背景 ##### 1、国际背景 随着互联网技术的飞速发展,即时通信已成为人们日常沟通的重要方式之一。1996年,Mirabilis公司推出的世界首个即时通信系统ICQ,标志着...

    IM 基于XMPP协议

    本文将深入探讨基于XMPP(Extensible Messaging and Presence Protocol)协议的IM系统,以及如何在iOS平台上实现一个类似QQ的即时通信功能。 XMPP是一种基于XML的开放标准,最初设计用于即时通讯,但后来扩展到更...

    基于xmpp协议的gloox底层库开发的即时通讯qtalk源码

    7. **Bin**:编译后的二进制文件目录,可能包含可执行程序和其他运行所需的依赖。 通过深入研究这些文件,开发者可以学习如何集成Gloox库,如何处理XMPP协议的数据流,以及如何在C++中构建一个完整的即时通讯应用。...

    基于XMPP协议的简单IM实现的Demo(iOS)

    XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通信协议,被广泛应用于即时通讯(IM)领域。本教程将介绍如何在iOS平台上利用XMPP协议开发一个简单的即时通讯应用Demo。首先,我们需要理解...

    基于xmpp协议的多端即时通讯

    二、Xmpp协议介绍 1. Xmpp协议概述:XMPP是一种用于即时消息和在线状态信息的开放标准通信协议,它让不同的网络服务可以互相通讯。 2. Xmpp协议内容:XMPP定义了客户端与服务器、服务器与服务器之间进行即时消息...

    Android 基于XMPP的即时聊天项目

    本项目是一套基于android+asmack+openfire+xmpp的安卓即时聊天服务端,项目直连google talk服务器,可以使用谷歌帐号登录客户端,测试需要至少两个谷歌帐号。在程序里添加好友即可聊天。聊天核心功能使用的smack库

    IOS XMPP 聊天程序客户端

    XMPP(Extensible Messaging and Presence Protocol)是一种基于XML的实时通讯协议,常用于构建即时通讯应用,如聊天软件。在iOS平台上开发XMPP聊天程序客户端,通常需要对XMPP框架有深入理解,并熟悉iOS的网络编程...

    Java开发 基于Xmpp的IM即时通讯项目

    【Java开发 基于Xmpp的IM即时通讯项目】是一个使用Java编程语言构建的实时通信应用程序,它基于XMPP(Extensible Messaging and Presence Protocol)协议。XMPP是一种开放的标准,用于实现即时消息传递和在线状态...

Global site tag (gtag.js) - Google Analytics