约定WebSocket请求内容,如下是我们约定的内容:
{"reqType":1000,"handleType":1,"token":"" ,"param":{"id":1218, "type":2, "param":"0.1"}}
{"reqType":1001,"handleType":1,"token":"" ,"param":{"id":1218, "type":2}}
其中reqType是唯一标示每个请求,可以理解为ID,可以定义一个枚举:
public enum ModuleEnum {
CONTRACT_USER_GENERAL("用户合约概要信息", 1000),
CONTRACT_USER_POSITION("用户持仓", 1001);
@Getter@Setter
private String name;
@Getter@Setter
private int code;
ModuleEnum(String name, int code) {
this.name = name;
this.code = code;
}
}
handleType用来标示是查询、订阅还是取消订阅,也可以定义一个枚举:
public enum WsHandleTypeEnum {
Query(1,"查询+订阅"),
Subscribe(2,"订阅"),
UnSubscribe(3,"取消订阅"),
OnlyQuery(4,"查询不订阅");
@Getter@Setter
private Integer code;
@Getter@Setter
private String desc;
WsHandleTypeEnum(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
}
其他的参数根据你们的业务需要去定义即可。reqType和handleType我感觉一般都需要的。
为了提升WebSocket的性能,以及提高部署WebSocket应用的服务端的利用率,需要把WebSocket功能单独提为一个应用。
image.png
Spring整合Netty、WebSocket还是很方便的。