在使用sendObject的时候,需要在@ServerEndpoint里面指定编码器,编码器的类型和发送的数据类型必须一模一样,子类也不行,不然就会报错。
编码器就是把入参转成String返回,websocket好像只能发string类型的数据。
public class ListEncoder implements Encoder.Text<List> {
@Override
public String encode(List list) throws EncodeException {
String result = "";
try{
result = JSON.toJSONString(list);
}catch (Exception e){
}
return result;
}
@Override
public void init(EndpointConfig endpointConfig) {
}
@Override
public void destroy() {
}
}
session.getBasicRemote().sendObject(list);
WebSocket发送对象时的编码器配置问题
在使用WebSocket的sendObject方法时,必须在@ServerEndpoint注解中指定与发送数据类型完全匹配的编码器,连子类也不行。编码器通常将参数转换为String类型,因为WebSocket主要支持发送字符串数据。例如,提供的代码示例展示了一个将List转换为JSON字符串的Encoder实现。
1001






