我是靠谱客的博主 神勇橘子,这篇文章主要介绍springboot websocket发送对象,现在分享给大家,希望可以做个参考。

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
package com.dmo.parkingServer.common.config; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import javax.websocket.Encoder; import javax.websocket.EndpointConfig; import java.util.Map; /** * @Author jt * @Description //websocket 投诉推送传递对象 * @Date 2020/12/4 */ public class ReportingWebsocketVoEncoder implements Encoder.Text<Map<String, Object>> { @Override public void init(EndpointConfig endpointConfig) { } @Override public void destroy() { } @Override public String encode(Map<String, Object> map) { ObjectMapper mapMapper = new ObjectMapper(); try { return mapMapper.writeValueAsString(map); } catch (JsonProcessingException e) { e.printStackTrace(); } return null; // return JSON.toJSONString(map); } }
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package com.dmo.parkingServer.common.config; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import javax.websocket.Decoder; import javax.websocket.EndpointConfig; import java.util.Map; /** * @Author jt * @Description //websocket 投诉推送传递对象 * @Date 2020/12/4 */ public class ReportingWebsocketVoDecoder implements Decoder.Text<Map<String, Object>> { @Override public void init(EndpointConfig endpointConfig) { } @Override public void destroy() { } @Override public Map<String, Object> decode(String s) { ObjectMapper objectMapper = new ObjectMapper(); try { return objectMapper.readValue(s, Map.class); } catch (JsonProcessingException e) { e.printStackTrace(); } return null; // return JSON.parseObject(s); } @Override public boolean willDecode(String s) { return true; } }
复制代码
1
@ServerEndpoint(value = "/webSocket/reporting/{userId}", encoders = ReportingWebsocketVoEncoder.class, decoders = ReportingWebsocketVoDecoder.class)

一般情况下fastjson就可以解决,这里测试发现了一个fastjson的一个bug,在map 转json字符串的时候,如果key的数据类型是integer时,转换后的 字符串不是一个json字符串,所以还是建议使用jackson。仅仅是传递对象数组的话,两者都是可以使用的。

最后

以上就是神勇橘子最近收集整理的关于springboot websocket发送对象的全部内容,更多相关springboot内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部