zoukankan      html  css  js  c++  java
  • 群聊

    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多用户文本聊天协议的完整用例集合,请参考协议规范。

  • 相关阅读:
    Shell xargs
    I2C总线图
    JS判断输入的字符串是否为数字
    CDN
    ④.linux基础之"字符集"
    01创建证书和环境准备
    梦的蒲公英
    java web项目部署遇到的jar cannot read的问题
    textbox icon jquery 插件
    解决双硬盘安装windows出现“安装程序无法定位现有系统分区,也无法创建新的系统分区”错误
  • 原文地址:https://www.cnblogs.com/hujihon/p/3705941.html
Copyright © 2011-2022 走看看