首页 > 其他 > 详细

群聊

时间:2014-05-05 12:47:18      阅读:465      评论:0      收藏:0      [点我收藏+]

XMPP在其XEP-0045扩展中定义了一个用于多用户文本会议(群聊)的协议,类似于聊天室、QQ群等。由于它作为一个标准协议在定义模型上力求完备,涵盖了现实中的绝大部分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多用户文本聊天协议的完整用例集合,请参考协议规范。

群聊,布布扣,bubuko.com

群聊

原文:http://www.cnblogs.com/hujihon/p/3705941.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!