Browse Source

文档整理

linzhuo 7 years ago
parent
commit
0162062e49
1 changed files with 84 additions and 54 deletions
  1. 84 54
      readme.md

+ 84 - 54
readme.md

@ -17,11 +17,14 @@
数据库设计是将消息按通道分开:系统消息,个人消息及群消息。
- msg_system: 系统消息,通过系统端发出去的消息存储在此表
- msg_p2p: 私信,通过私信端发出去的消息存储在此表
- msg_group: 群消息,通过群消息端发出去的消息存储在此表
- msg_statistic: 消息统计,当有系统,个人或群消息的时候,除了在上述三个记录数据外,还会在表中插入相关的消息统计,如:接收人有多少条未读消息,最后消息时间,内容或群ID等
- msg_push: 消息推送,当消息需要推送到设备的时候,先将消息记录在此表中,再用个推服务推送到目标设备
- system_messages: 系统消息,通过系统端发出去的消息存储在此表
- p2p_messages: 私信,通过私信端发出去的消息存储在此表
- group_messages: 群消息,通过群消息端发出去的消息存储在此表
- muc_messages:muc患者咨询消息,通过咨询发送出去的消息存储在此表
- app_status: 消息推送获取应用状态的表,当消息需要推送到设备的时候,先从此表获取客户端信息,再用个推服务推送到目标设备
- participants:会话成员表,所有的会话成员创建都创建到此表中
- sessions:所有的消息对话的主体对象,会话表,记录所有会话记录,根据type和business_type来区分对应的信息type=1 muc模式,type=2 p2p模式,type=3  group模式 type = 0 系统会话
- topics:所有的咨询(包括名医咨询都存储在此表中)关联会话信息,每个会话跟议题是一对多的关系。议题的消息根据会话类型不同分别存储在p2p_messages(会话类型type = 2)和muc_messages(会话类型type = 1)
## 运行
@ -98,56 +101,83 @@ Node.js支持同步与异步调用,也导致了异常错误处理与众不同
REST API遵循REST最佳实践,规范命名URL中的每个部分。注意POST请求是将数据作为请求体发送。下文中的host:port分别表示服务所在的主机地址及端口。
1 发送系统消息
    POST http://host:port/api/v1/chats/sm
    
参数格式
    {
        to: "Rose",
        title: "System Message",
        summary: "You have new job",
        contentType: "1",
        content: "The patient has been followed in the scheduler, please make new follow plan as soon as possible."
/**
 * IM客户端SDK。此SDK可以连接开发、测试或生产环境,根据需要配置环境参数以连接到不同的服务器。
 */
const APIv2 = {
    Application: {
        Base: '/api/v2/application',  
        BadgeNo: '/badge_no' //获取角 
    },
    Users: {
        Base: '/api/v2/users',
        Login: '/login',  //用户登录
        Logout: '/logout', //用户登出
        User: '/:user_id', //获取用户信息
        UserStatus: '/:user_id/status',//用户状态
        UserConsultTime:'/:user_id/consult/time'//用户咨询时间
    },
    Sessions: {
        Base: '/api/v2/sessions',
        Session: '/:session_id/session',
        SessionSticky: '/:session_id/sticky',                           // 会话置顶,置顶使用PUT,取消置顶使用DELETE
        SessionStatus: '/:session_id/status',                           //更新状态
        RecentSessions: '/recent',                                      // 最近会话,使用类型过滤出'患者'或'医生'会话
        Topics: '/:topic_id/topics',
        Topic: '/topics/:topic_id',                          // 议题,指定ID的议题将返回其信息
        TopicEnded: '/:session_id/topics/:topic_id/ended',              // 议题是否已结束,若top_id为current,则检查最后一个议题的状态
        TopicList:'/topics',
        TopicReplyCount:"/topics/count/reply",
        TopicMessages:'/topic/:topic_id/messages',
        Messages: '/:session_id/messages',                             // 会话消息
        MessagesByTopic: '/:session_id/topics/:topic_id/messages',      // 议题消息
        Message: '/:session_id/messages/:message_id',                   // 单条消息
        SessionsUnreadMessageCount: '/unread_message_count',            // 所有会话的未读消息数
        SessionUnreadMessageCount: '/:session_id/unread_message_count', // 指定会话的未读消息数
        SessionUnreadMessages: '/:session_id/messages/unread',           // 会话未读消息
        ParticipantUpdate:'/:session_id/participant/update',//更新成员=删除旧成员,新增新成员
        Participants: '/:session_id/participants',                      // 会话所有成员
        ParticipantsAvatar: '/:session_id/participants/avatars',        // 会话所有成员头像
        Participant: '/:session_id/participants/:participant_id',       // 会话单个成员
        ParticipantAvatar: '/:session_id/participants/:participant_id/avatars'  // 会话单个成员头像
    }
2 发送P2P消息
    GET http://192.168.131.115:3000/api/v1/chats/pm
参数格式
    {
        from: 发送人ID,
        to: 接收人ID,
        contentType: 内容类型,1为普通文本,2为图片,3为语音,4为超链接,
        content: "消息内容"
    }
    
3 发送群消息
    POST http://192.168.131.115:3000/api/v1/chats/gm
参数格式
    {
        from: 发送人ID,
        at: at对象ID,
        group: 组ID,
        groupType: 组类别
        contentType: 内容类型,1为普通文本,2为图片,3为语音,4为超链接,
        content: "消息内容"
    }
    
4 获取消息
    GET http://192.168.131.115:3000/api/v1/chats/pm?user_id=xxx
参数:
- user_id: 用户ID
};
### 业务分析
    消息类型:muc_messsges,p2p_messages,group_messages,system_messages表对应的type字段
        0:系统消息
        1:文本消息
        2:图片消息
        3:语音消息
        4:文章消息
        5:跳转消息
        6:议题开始
        7:议题结束
        8:转发的消息
        9:转发的图片
        10:议题结束发送的消息
        11:预留
        12:小视频消息
        13:预留
    会话类型 
        sessions的type字段
            type =1消息保存muc_messsges、患者的三师、家庭咨询会话
            type=2消息保存p2p_messages、患者的名医咨询,医生间的p2p、名医咨询会话
            type =3消息保存group_messages、行政团队聊天会话
            type =0 消息保存system_messages 系统聊天会话
        sessions的business_type字段
            business_type =1 此会话不包含患者
            business_type =2 此会话包含患者
        sessions的status字段
            **此字段只针对议题的会话有效**
                标示当前会话是否有活跃的议题
### Web Socket
Web Socket提供页面内长连接,并且能够通过Web Socket收发消息。