编解码器
网络传输中全部使用的是二进制流,而两边使用java对象进行发送和接收,就需要使用编解码器
编码器
将java对象转换为WebSocket消息
- 对于文本消息,需要实现Encoder.Text
- 对于二进制消息,需要实现Encoder.Binary
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public class TextEncoder implements Encoder.Text<Message>{ @Override public String encode(Message o) throws EncodeException { return null; }
@Override public void init(EndpointConfig endpointConfig) {
}
@Override public void destroy() {
} }
|
解码器
将WebSocket消息转换为java对象
- 对于文本消息,需要实现Decoder.Text
- 对于二进制消息,需要实现Decoder.Binary
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| public class TextDecoder implements Decoder.Text<Message>{ @Override public Message decode(String s) throws DecodeException { return null; }
@Override public boolean willDecode(String s) { return false; }
@Override public void init(EndpointConfig endpointConfig) {
}
@Override public void destroy() {
} }
|
注册编解码器
在注解中进行配置
1 2 3 4 5 6 7 8 9 10
| @ServerEndpoint(value = "/echo", // 添加编码器 encoders = { TextEncoder.class }, // 添加解码器 decoders = { TextDecoder.class } )
|