参考英文网站:
http://yourpalmark.com/2009/07/30/writing-xiff-extensions-to-pass-custom-data-over-xmpp/
翻译如下:(英文不咋的,只能用google翻译如下)
正如我在以前的帖子提到的,我正在努力建立一个聊天室使用的XMPP(Jabber的)和XIFF AS3的空气污染指数。
如果您不知道如何获得与XMPP和XIFF开始,请务必检查该职位让你启动和运行。
有一次,我成功地制定了利用XIFF连接XMPP和来回传递数据之间的服务器和客户端,我很快意识到,我想和聊天室中的每个用户自定义的数据关联。
XMPP协议的核心协议中用来表示一个用户的当前网络的可用性(离线或在线等)的存在。
在IM,你知道当你的好友上线,成为不可用,等等,因为你订阅他们的存在。
用户的存在也发送到聊天室时,他/她加入了房间。
默认存在的数据通常只包含有关用户的状态(离开,忙碌,可等)信息。
这个问题,我很快跑到我的聊天室进入,是我们的网站已经有与每个用户(身份证,用户名,图片等),我想这与联想的聊天用户没有数据相关的数据收集大量用户重复数据。
最好的地方似乎是他们的存在直接联系,因为它已经与每个用户。唯一的问题我已经是解决如何做到这一点。
我很快意识到,在XMPP规范是极为良好的可扩展并通过与XIFF试图在它的图书馆管理的可扩展性,以及思想。
在XIFF,扩展可以添加到任何发送到XMPP服务器XMPPStanza。
默认情况下,有三个核心的XMPP stanzas, IQ, Message and Presence.
其中的每个节都有一addExtension()方法。
我需要做的就是编写一个定制的扩展类,我可以传递到存在的addExtension()方法。
getNS()将返回自定义唯一的命名空间,您将需要创建和扩展与此关联。
例如:http://yourdomain.com/extensionname
getElementName()将返回基地的XML元素名称与此相关联的延伸。
例如:extension_name
要实现ISerializable,你将需要添加序列化()和反序列化()方法。
serialize()来将数据转换成XML类型的扩展要传递给服务器,而反序列化()会得到相反效果,并转换成类型化延伸,收到的XML数据。
欲了解更多这方面的详细资料,请一定要看看在XIFF的库中现有的一些扩展。
一旦类完成后,您将需要注册与XIFF延伸。这个注册过程中通知的特定扩展XIFF,以便它知道如何处理它时,它是在网络上获得。
这可以通过调用ExtensionClassRegistry.register(CustomExtension)任何时间,然后再尝试通过对XMPP协议扩展。
大多数扩展提供了一个静态使()与在它上面的代码的方法来处理这个注册过程。
在这一点上,你可以创建一个核心XMPP的叙述(智商,消息,或存在)和一个新的扩展的实例,然后使用addExtension()方法的核心节通过在您的扩展任何实例。
最后一步是调用Send()在您的XMPP协议的XMPP节在通过连接方法。
要完成我的例子中,我创建了一个自定义用户扩展了用户的ID,名称,图片等,并附加到用户的存在。
这可能是因为上述的连接上发送和XMPP的用户订阅我的存在任何方法,可以得到自定义扩展,以及通过。
有一件事情我想做的就是加入聊天室,并同在该房间内得到广播现有的用户都存在这一习俗相关的信息资料。
我花了一点点认识到客房类有一本已经功能。就像我说,XMPP协议已经想到了一切。
当您加入一个聊天室,你叫客房的join()方法,第二个参数允许你添加一个扩展阵列的存在。只要您的自定义实例驻留期限延长,并封装在一个数组,并传递到join()方法调用它。
希望这有助于指出,登上了XMPP协议自定义发送数据XIFF卡住等。
分享到:
相关推荐
本文将深入探讨如何利用XIFF扩展在XMPP协议中传递自定义数据。 首先,XMPP(Extensible Messaging and Presence Protocol)是一种开放标准的即时通讯协议,其核心功能包括消息传递和用户状态更新。在XMPP中,用户的...
XIFF3是由AS3编写的一个库包专门用于IM软件开发。可以用AIR开发或者是FLEX开发。目前最新版本为3.4.2
通过理解XMPP协议和XIFF的特点,用户不仅可以享受到高效沟通的便利,还可以根据自身需求定制功能,满足多样化的通信场景。对于开发者来说,XIFF提供了丰富的API和插件机制,为创建独特、个性化的聊天体验提供了广阔...
6. **扩展性**:XIFF 3的XML基础使其具有良好的扩展性,可以轻松添加新功能或自定义协议,以适应不断发展的通讯需求。 7. **API接口**:XIFF 3为开发者提供了丰富的API接口,方便在不同编程语言中使用,如...
XIFF(eXtensible Internet Framework)是Flex中一个用于处理XMPP协议的库,它允许开发者在Flex应用程序中实现XMPP功能,比如创建用户会话、发送和接收消息、管理用户状态等。XIFF为Flex提供了与XMPP服务器交互的...
XMPP协议支持丰富的消息格式,包括文本、XML元素、二进制数据等,而且可以扩展以支持更复杂的应用场景,如群聊、文件传输和多用户游戏。 从提供的压缩包文件名称列表来看,我们有以下几个文件和目录: 1. **change...
1. **XMPP协议支持**:XIFF 3.0.0遵循XMPP标准,提供了一套完整的API,使得开发者能够轻松地创建XMPP客户端应用,实现用户之间的消息传递、状态更新、多用户聊天室等功能。 2. **跨平台兼容性**:XIFF支持多种编程...
XAPP协议是这个项目所依赖的一种特定的即时通讯协议,它可能是对XMPP协议的扩展或定制,以适应项目的需求。Openfire作为服务器端软件,是一个用Java编写的开源即时通讯和协作服务器,它支持多种协议,包括XMPP。在...
XIFF,全称为XMPP Instant Messaging and Federation Framework,是一个基于XMPP(Extensible Messaging and Presence Protocol)协议的开源即时通讯库。在3.4.2版本中,XIFF展现出了其在即时通讯领域的强大功能和...
### Openfire + XIFF 聊天室开发设计笔记 #### 一、Openfire服务器配置与部署 **1.1 安装前准备** - **Java运行环境**: ...通过这些步骤,您可以轻松地搭建一个基于XMPP协议的即时聊天系统,并处理常见的技术难题。
XIFF提供了处理XMPP协议的接口,如登录、发送和接收消息等。 3. 编写FLA代码:在`recipient.fla`中,开发者将编写ActionScript代码,利用XIFF库实现与Openfire的连接和消息处理。这部分代码会监听服务器推送的消息...
Openfire是一款开源、基于XMPP协议的实时协作服务器。它提供了一个灵活且可扩展的架构,支持多种客户端和服务器间的通信,包括聊天、文件传输、群组聊天等功能。在Flex项目中集成XIFF库,可以创建功能完善的即时通讯...
XIFF,全称为eXtensible Instant Messaging Framework,是一个用JavaScript编写的开源库,它为浏览器提供了XMPP协议的支持,XMPP是一种开放标准的即时通讯协议。XIFF 3.0是其第三个主要版本,提供了一套完整的API,...
sparkWeb中使用的XMPP implementations For Flash
1. **XIFF**:eXtensible Instant Messaging Framework,一个用于创建跨平台即时通讯应用的开源库,支持多种协议如XMPP、AIM、ICQ等。 2. **Adobe Flex**:用于构建RIA的开发工具,使用MXML和ActionScript,生成SWF...
XIFF3.4.2.swc XIFF3.4.2.swc XIFF3.4.2.swc XIFF3.4.2.swc
总结来说,XIFF Library 是一款强大的开源工具,让Flash开发者能够轻松实现XMPP协议的功能,借助开源社区的力量,这款库不断优化和完善,为即时通讯应用开发提供了便利。同时,开源许可证和清晰的文档使得使用和贡献...
10. **网络通信**:XIFF是一个实现XMPP协议的库,允许在Flex应用中进行即时通讯功能。 以上只是Flex教程中部分关键知识点的概述。实际教程中可能还会详细讲解如何使用这些技术,包括MXML布局、数据绑定、事件处理、...
xiff_3_4_2.swc 博文链接:https://wangcheng.iteye.com/blog/157468