XMPP在其XEP-0045扩展中定义了一个用于多用户文本会议(群聊)的协议,类似于聊天室、等。由于它作为一个标准协议在定义模型上力求完备,涵盖了现实中的绝大部分IM产品模型,而现实中的IM产品基本都只实现了XMPP定义的模型中的一个子集。
XMPP定义的一些基本概念:
房间:房间的JID标识 <room@service> (例如, <jdev@conference.jabber.org>), 这里 "room" 是房间的名称而 "service" 是多用户聊天服务运行所在的主机名
房客:房客的JID标识<room@service/nick>,nick是房客在房间的昵称
岗位:表达了用户和房间的长期关系。XMPP定义的岗位有:所有者(owner)、管理者(admin)、成员(member)、排斥者(outcast)
角色:表达了用户和房间的临时联系,它只存在与一次访问期间。XMPP定义的角色有:主持人(moderator)、与会者(paticipant)、游客(visitor)
有关岗位、角色及其权限详细描述,参考协议规范描述(角色、岗位和权限)
XMPP MUC协议扩展定义了一个广泛的用例集合,下面提取一些典型的核心场景来简要分析说明并辅助实现。
1. MUC服务发现
主要用于客户端向服务器咨询是否支持MUC,协议交互细节详见:MUC Discovering
2. 新建房间
从房间创建的视角来看,本质上有2种类型的房间:
instant room 临时房间(类似于临时会话),适用于那些临时选取多个用户进行会话的场景
reserverd room 永久房间(类似于固定群)
3. 销毁房间
销毁房间通常仅限于房间的所有者,临时房间通常是在房间所有用户都离开后自动销毁
4. 加入房间
加入房间可以有2种方式,申请和邀请
5. 发言
在房间内发言方式从使用场景的角度看通常有3种:
- 向房间内所有人发言,发言者发送一个消息类型为groupchat的消息,由房间服务转发给所有与会者。
- 向部分人发言,这个场景发言者实际创建了一个临时房间,在该临时房间内进行群发。
- 向某一个人发送似有消息,这个场景退化为了一对一的单独聊天。
6. 退出房间
主动退出、管理员(主持人)踢出房间
关于XMPP多用户文本聊天协议的完整用例集合,请参考协议规范。
分享到:
相关推荐
xmpp协议中文翻译。随便下载。不要资源分数
Messaging and Presence Protocol (XMPP) that provide basic instant messaging (IM) and presence functionality in conformance with the requirements in RFC 2779. This document obsoletes RFC 3921.
android xmpp 语音 图片 文本聊天 必须搭建xmpp服务器,暂时不能实现实时的语音,视频。 搭建好服务器后记得吧xmpptool类里面的ip改成你的电脑ip 登陆就ok了。
android xmpp chat 聊天程序
Android 基于XMPP协议IM聊天实现(客户端+服务端) 源码
基于XMPP协议的类似QQ的即时通信demo 简单实现了 注册,登录,添加好友,删除好友,好友的通信 包括发文本,图片和声音。
类似QQ的xmpp协议聊天 基本功能都有了
带有SQL的Ionic XMPP聊天客户端 这是使用离子Cordova的XMPP chat Client构建。 集成的本地SQL数据库,用于存储聊天消息。 有关如何构建此应用程序的完整教程系列,请访问视频教程:
xmpp协议和xmpp扩展协议,chm格式
XMPP体系架构 XMPP server:其内核是一个XMPP路由器,完成基本组件间的数据包交换和路由。 功能: 1.会话管理器:负责客户端会话认证,在线状态,用户联系表等 2.数据存储器(XDB):连接数据库系统,保持用户信息、...
本资源是自己写的利用XMPP协议进行聊天的软件,界面实现采用Qt,功能和QQ很类似,对学习XMPP协议和Qt很有帮助。
android基于xmpp协议的即时聊天demo 可加好友,可即时聊天,可运行
有感于3Q大战,自己编写了一个XMPP协议的客户端,目前只实现了简单的基础功能,可以发送消息.其他功能正在开发中.默认已经注册了一个GTalk帐号供测试,大家有自己的GMail帐号也可以直接输入测试.
XMPP(Jabber)协议PHP客户端库 这是一种低级套接字实现,由于缺少在线此类库,使PHP能够与XMPP进行通信(至少我可以找到具有不错文档的库)。 XMPP核心文档可以在找到。 安装要求和示例 项目要求在composer.json ...
XMPP(Extensible Messageing and Presence Protocol:可扩展消息与存在协议)是目前主流的四种IM(IM:instant messaging,即时消息)协议之一
可扩展消息出席协议(XMPP)的完全讲解,文档附带例子,通俗易懂。
对我说 基于xmpp协议的IM聊天
XMPP(可扩展通讯和表示协议)是基于可扩展标记语言(XML)的协议,它用于即时消息(IM)以及在线探测。这个协议可能最终允许因特网用户向因特网上的其他任何人发送即时消息。 简介:XMPP是一种基于XML的协议,它继承...
xmpp-ftw angular conversejs 克隆这个应用程序用户angluar-xmpp-services。 UI 是从 conversejs 中窃取的。 这是alpha软件
web端页面做IM聊天室功能,所以我们选择在web页面上直接与openfire做通信,这样可以减少服务器访问压力.web页面端通过应用strophe.js库,拼接XMPP字符串与openfire服务器进行通信