在使用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);