跳到主要内容
版本:3.4.4

测试接口

WebSocket 接口提供一个测试方法,客户端可以通过向测试地址 /test 发送一个WsTestReq结构的消息,可触发服务端向相关的队列推送消息,以便测试。 WebSocket客户端可以使用本方法来测试连接,或测试自己的websocket消息业务处理逻辑。

使用方法和过程

  1. 用Stomp客户端连接 /v1/ws 端点
  2. 订阅所要测试的列队
  3. /test 测试地址发送一个 WsTestReq 消息。
  4. 服务端收到 WsTestReq 消息后,将 WsTestReq 消息中的 msg 字符串的内容原样推送到 /user/{token}/queue/{queue} 其中 token 为登录 token,queue 为由 WsTestReq.queue 指定的名称
  5. 客户端订阅的指定队列收到服务端的推送消息

WsTestReq 结构

属性数据类型必要说明
queuestringY队列名。服务最终推送的队列名为:/user/{token}/queue/{queue}
msgstringY所要推送的消息的内容。

示例

/**
* 发送到 `/test` 测试地址的消息体
*/
class WsTestReq {
/**
* 队列名
* @type string
*/
queue;

/**
* 要服务端推到 `queue` 属性定义的队列的消息内容。
* @type string
*/
msg;

/**
*
* @param {string} queueName
* @param {Object | string} payload
*/
constructor(queueName, payload) {
this.queue = queueName;
if (payload instanceof String)
this.msg = payload;
else
this.msg = JSON.stringify(payload);
}
}

/**
* 本结构用户可以自定义,此结构的内容将在 JSON.stringify 后作为 WsTestReq.msg 的内容,在 WsTestReq 发送到 `/test` 测试地址后,服务端会
* 将本结构的内容原样推送到 `/user/{token}/queue/{queue}`,其中 token 为登录 token,queue 为由 WsTestReq.queue 指定的名称。
*/
class WsConnTestPayload {

/**
* 自定义此结构的内容
*/

// ...
}


// 订阅 mytest 队列
this.stomp.subscribe("/user/LoDpxsejQxCIeZHE83iMSA/queue/mytest", (frame) => {
/**
*
* @type {WsConnTestPayload}
*/
const connTestReq = JSON.parse(frame.body);

// 对发到的消息进行处理
// ...
});

// 测试时
const reqId = crypto.randomUUID();
const payload = new WsConnTestPayload();
payload.reqId = reqId;

const req = new WsTestReq("mytest", payload);

// 将消息发送到 `/test` 测试地址
this.stomp.send("/test", null, JSON.stringify(req));