WS请求规则

ws请求地址为 /ws/{userCode},用户登录后执行ws的open操作,打开ws链接

WS推送类型

类型名称 类型编码 说明
控制操作 CONTROL 启动、停止等操作
用户在线 ONLINE 用户在线状态
用户离线 OFFLINE 用户离线状态
日志 LOG 发送给教员的日志信息
操作同步 SYNC 多人协作时同步操作给其他人员

登录操作接口交互过程

  1. 前端登录后open ws。
  2. 后端登陆后绑定当前登陆人与登录IP的对应关系(缓存)

日志存储格式定义(数据库设计参考)

列明 类型 说明
ID 主键
LOG_TYPE VARCHAR 日志类型
LOG_DESC VARCHAR 日志描述,主要用于给前端显示使用
VR_CLASSROOM_ID VARCHAR 虚拟教室id
S_USER VARCHAR
S_ATIME DATETIME
CREATE_DATE DATE 创建日期,如有统计可以使用

日志类型

日志编码 说明
LOG-101 教员启用整个教室的操作
LOG-102 教员启用某个学员的操作
LOG-103 教员暂停整个教室的操作
LOG-104 教员暂停某个学员的操作
LOG-105 教员终止整个教室的操作
LOG-106 教员终止某个学员的操作
LOG-201 进入教室
LOG-202 离开教室
LOG-301 下发推送计划
LOG-401 学员操作日志
LOG-402 训练结束

教员启用、暂停、终止操作

  1. 教员调用后端接口暂停、启用整个教室。service接口调用,基本参数不列出,只列出特殊参数信息

    启用操作前端发送数据到后端

    {
    'LOG_TYPE':'LOG-101',
    'VR_CLASSROOM_ID':''
    }
    

    启用操作后端发送ws消息给教室创建人

    {
    'LOG_TIME':'2025-07-29 12:12:12',
    'LOG_DESC':'xxx 暂停教室所有人操作'
    }
    

    启用操作后端发送ws消息给教室所有学员

    {
    'TYPE':'CONTROL',
    'OPT':'START'
    }
    

    暂停操作前端发送数据到后端

    {
    'LOG_TYPE':'LOG-103',
    'VR_CLASSROOM_ID':'id'
    }
    

    暂停操作后端发送ws消息给教室创建人

    {
    'LOG_TIME':'2025-07-29 12:12:12',
    'LOG_DESC':'xxx 恢复教室所有人操作'
    }
    

    暂停操作后端发送ws消息给教室所有学员

    {
    'TYPE':'CONTROL',
    'OPT':'STOP'
    }
    

    2.教员调用后端接口暂停、启用单个学员。service接口调用,基本参数不列出,只列出特殊参数信息 启用操作前端发送数据到后端

    {
    'LOG_TYPE':'LOG-102',
    'VR_CLASSROOM_ID':'id',
    'USER_CODE':'学员code'
    }
    

    启用操作后端发送ws消息给教室创建人

    {
    'LOG_TIME':'2025-07-29 12:12:12',
    'LOG_DESC':'xxx 暂停学员xxx操作'
    }
    

    启用操作后端发送ws消息给学员

    {
    'TYPE':'CONTROL',
    'OPT':'START'
    }
    

    暂停操作前端发送数据到后端

    {
    'LOG_TYPE':'LOG-104',
    'VR_CLASSROOM_ID':'id',
    'USER_CODE':'学员code'
    }
    

    暂停操作后端发送ws消息给教室创建人

    {
    'LOG_TIME':'2025-07-29 12:12:12',
    'LOG_DESC':'xxx 恢复学员xxx操作'
    }
    `暂停
    *启用操作后端发送ws消息给学员*
    ```javascript
    {
    'TYPE':'CONTROL',
    'OPT':'STOP'
    }
    

    3.教员调用后端接口终止整个教室操作。service接口调用,基本参数不列出,只列出特殊参数信息 终止操作前端发送数据到后端

    {
    'LOG_TYPE':'LOG-105',
    'VR_CLASSROOM_ID':'id'
    }
    

    终止操作后端发送ws消息给教室创建人

    {
    'TYPE':'LOG',
    'LOG_TIME':'2025-07-29 12:12:12',
    'LOG_DESC':'xxx 终止教室xxx所有人操作'
    }
    

    终止操作后端发送ws消息给教室所有学员

    {
    'TYPE':'CONTROL',
    'OPT':'TERMINATE'
    }
    

    4.教员调用后端接口终止某个学员操作。service接口调用,基本参数不列出,只列出特殊参数信息 终止操作前端发送数据到后端

    {
    'LOG_TYPE':'LOG-106',
    'VR_CLASSROOM_ID':'id',
    'USER_CODE':'学员code'
    }
    

    终止操作后端发送ws消息给教室创建人

    {
    'TYPE':'LOG',
    'LOG_TIME':'2025-07-29 12:12:12',
    'LOG_DESC':'xxx 终止学员xxx操作'
    }
    

    终止操作后端发送ws消息给学员

    {
    'TYPE':'CONTROL',
    'OPT':'TERMINATE'
    }
    

    进入教室

  2. 前端调用后端接口告知用户进入教室,后端收到消息发送ws消息给前端教室创建人。前端调用接口参数,通用的service调用,基本参数此处不列出,只列出特殊参数信息。
    {
     'LOG_TYPE':'LOG-201',
     'VR_CLASSROOM_ID':'id'
    }
    
  3. 后端存储进入教室的日志数据,并发送ws消息给教室创建人。
    {
    'TYPE':'LOG',
    'LOG_TIME':'2025-07-29 12:12:12',
    'LOG_DESC':'XXX进入教室'
    }
    
  4. 推送人员加入信息给前端,前端根据此消息更改人员状态
    {
    'TYPE':'ONLINE',
    'IP':'学员登录IP'
    }
    

离开教室

1.离开教室,前端发送消息到后端,后端记录日志,并发送ws消息给教室创建人。通用的service调用,基本参数此处不列出,只列出特殊参数信息。

  {
    'LOG_TYPE':'LOG-202',
    'VR_CLASSROOM_ID':'id'
  }
  1. 后端存储离开教室的日志数据,并发送ws消息给教室创建人。
    {
    'TYPE':'LOG',
    'LOG_TIME':'2025-07-29 12:12:12',
    'LOG_DESC':'XXX离开教室'
    }
    
  2. 推送人员退出消息给前端,前端根据此消息更改人员状态
    {
    'TYPE':'OFFLINE',
    'IP':'学员登录IP'
    }
    

    下发训练计划

  3. 教员下发训练计划,调用后端接口,后端记录日志,并推送ws消息将训练计划id给3d

    前端调用后端接口,接口数据

    {
    'VR_CLASSROOM_ID':'id',
    'LOG_TYPE':'LOG-301'
    }
    

    后端存储日志,发送日志消息给教室创建人

    {
    'TYPE':'LOG',
    'LOG_TIME':'2025-07-29 12:12:12',
    'LOG_DESC':'XXX下发训练计划'
    }
    

    后端,发送训练计划id给房间内学员

    {
    'TRAINING_PLAN_ID':'id'
    }
    

学员操作日志(不包括训练的最后一步操作)

  1. 学员提交操作记录日志到后端,通用service方法。参数目前只是演示,实际参数可能有区别,要根据实际3d传过来的数据为准。

    前端提交到后端的参数(http) demo

    {
    'VR_CLASSROOM_ID':'虚拟教室id',
    'SUBJECT_ID':'训练科目id',
    'STEP':'',
    'LOG_TYPE':'LOG-401'
    }
    

    后端根据教室id,查询教室的训练类型是单人还是多人,然后根据不同类型进行不同操作

    • 如果是单人训练
    • 保存操作记录到日志表并发送给教室创建人(待确认是否需要把学员操作记录输出到教室创建处)
      {
      'TYPE':'LOG',
      'LOG_TIME':'2025-07-29 12:12:12',
      'LOG_DESC':'xxx学员操作***'
      }
      
    • 保存操作记录到成绩明细表,并记录分值
    • 如果是多人协同
    • 保存操作记录到日志,并发送给创建人(待确认是否需要把学员操作记录输出到教室创建处)
      {
      'TYPE':'LOG',
      'LOG_TIME':'2025-07-29 12:12:12',
      'LOG_DESC':'xxx学员操作***'
      }
      
    • 操作人操作步骤同步到同教室其他人员ws消息发送(数据格式为json字符串,具体内容目前需要3d前端确认,但消息中一定会包含type字段,便于前端做判断处理)
      {
       'TYPE':'SYNC',
       '一些参数':''
      }
      

学员提交操作完成操作(会计算本次训练成绩)

  • 前端提交数据到后端(http)

    前端提交到后端的参数(http) demo

    {
    'VR_CLASSROOM_ID':'虚拟教室id',
    'SUBJECT_ID':'训练科目id',
    'STEP':'',
    'LOG_TYPE':'LOG-402'
    }
    

    后端结算本次科目训练,并计算成绩,存储到成绩表中,方便后面查看(多人存储多参与的每个人成绩)。同时会以ws的方法推送数据到相关的人。(单人推送一份,多人推送多份)

    {
    'TYPE':'RESULT',
    'SCORE':'',
    'DETAIL':[每一次操作记录及结果]
    }
    

后端提供HTTP接口一览表

接口描述 接口路径 说明
根据训练方案获取训练科目列表 暂无
操作日志相关操作 /receiveLog 日志相关的所有操作,前端发送的操作中包含LOG_TYPE的都走这个接口。
根据单人还是多人筛选训练科目 动态字典

results matching ""

    No results matching ""