websocket

申请连接token: /websocketTokens POST

返回示例:

{
  "type": "CONSOLE_WEB",
  "token": "626f3c0fbfc3bf3173a31389160c4664",
  "visitorId": "6e105d89t96bbt4d0et9766t72f758231f85"
}

websocket链接地址:

  • 开发环境:ws://websocket-dev.sumian.tech
  • 测试环境:ws://websocket-test.sumian.tech
  • 生产环境:ws://websocket.sumian.tech

websocket客户端连接采用socket.io-client (4.4.1)

websocket链接示例:

const socket = io(
  `${websocketDomain}?token=${token}&type=${type}&visitorId=${visitorId}`,
  {
    transports: ['websocket'],
  }
);
socket.on('connect', () => {
  console.log('---connect-socket--');
});
socket.on('event', (data) => {
  console.log(data);
});
socket.on('error', (error) => {
  console.log('---error', error);
});
socket.on('connect_error', (error) => {
  console.log(error);
});

socket.on(SocketEvent.OrderMsg, (msg) => {
  console.log('-------socket', JSON.parse(msg));
});

websocket支持事件:

export enum SocketEvent {
  DownLoadFile = 'DOWNLOAD_FILE',

  // 开始同步企业微信部门
  SyncWorkWechatDept = 'SYNC_WORK_WECHAT_DEPT',
  // 开启同步企业微信部门响应事件
  SyncWorkWechatDeptRes = 'SYNC_WORK_WECHAT_DEPT_RESPONSSE',
  // 同步企微部门成功
  SyncWorkWechatDeptSuccess = 'SYNC_WORK_WECHAT_DEPT_SUCCESS',
  // 同步企微部门失败
  SyncWorkWechatDeptFailed = 'SYNC_WORK_WECHAT_DEPT_FAILED',

  // 开始同步企业微信用户
  SyncWorkWechatUser = 'SYNC_WORK_WECHAT_USER',
  // 开启同步企业微信用户的响应事件
  SyncWorkWechatUserRes = 'SYNC_WORK_WECHAT_USER_RESPONSSE',
  // 同步企微通讯录用户成功
  SyncWorkWechatUserSuccess = 'SYNC_WORK_WECHAT_USER_SUCCESS',
  // 同步企微通讯录用户失败
  SyncWorkWechatUserFailed = 'SYNC_WORK_WECHAT_USER_FAILED',

  // 生成PDF文件
  GeneratePDF = 'GENERATE_PDF',
  GeneratePDFRes = 'GENERATE_PDF_RES',
  GeneratePDFSuccess = 'GENERATE_PDF_SUCCESS',
  GeneratePDFFailed = 'GENERATE_PDF_FAILED',
}

对应事件的参数:

// GENERATE_PDF
{
  "visitorId": "6e105d89t96bbt4d0et9766t72f758231f85", // 访问者id
  "data": {
    "memberEvaluationId": 1, // 患者测评id
    "teamEvaluationId": 2 // 团队测评id
  }
}

对应事件的返回参数

// SYNC_WORK_WECHAT_DEPT
{
  "code": "ok",
  "taskId": "0fed6fc5-1a4a-49ab-b3e8-5721d2c04126"
}

// SYNC_WORK_WECHAT_DEPT_SUCCESS
{
  "code": "ok",
  "taskId": "0fed6fc5-1a4a-49ab-b3e8-5721d2c04126", // 对应任务的id
  "errorData": [], // 同步失败的数据
  "successCounter": 0 // 同步成功的数据数量
}

// SYNC_WORK_WECHAT_DEPT_FAILED
{
  "code": "UNKNOWN", // 根据业务流程返回不同错误码,详见Code对照表
  "taskId": "0fed6fc5-1a4a-49ab-b3e8-5721d2c04126", // 对应任务的id
  "message": "", // 失败描述
}

// SYNC_WORK_WECHAT_USER
{
  "code": "ok",
  "taskId": "0fed6fc5-1a4a-49ab-b3e8-5721d2c04126"
}

// SYNC_WORK_WECHAT_USER_SUCCESS
{
  "code": "ok",
  "taskId": "0fed6fc5-1a4a-49ab-b3e8-5721d2c04126", // 对应任务的id
  "errorData": [], // 同步失败的数据
  "successCounter": 0 // 同步成功的数据数量
}

// SYNC_WORK_WECHAT_USER_FAILED
{
  "code": "UNKNOWN", // 根据业务流程返回不同错误码,详见Code对照表
  "taskId": "0fed6fc5-1a4a-49ab-b3e8-5721d2c04126", // 对应任务的id
  "message": "", // 失败描述
}