javascript 通过stomp WebSocket springboot压缩或发送gzip数据,并嵌入Tomcat

vsikbqxv  于 2023-02-28  发布在  Java
关注(0)|答案(1)|浏览(131)

我有超过1 MB的JSON数据,需要通过stomp WebSocket发送。我们使用的是嵌入式Tomcat的Sping Boot 。
我把我的数据压缩成gzip,然后转换成字符串通过WebSocket发送。我修改了stomp头发送内容编码作为响应的一部分,但浏览器无法解压缩和读取它。
如何在react/redux/js中读取客户端中的json。

SimpMessageHeaderAccessor accessor = SimpMessageHeaderAccessor.create();
accessor.setContentType(MimeTypeUtils.TEXT_PLAIN);

accessor.setNativeHeader("content-encoding", "gzip");
accessor.setLeaveMutable(true);
MessageHeaders headers = accessor.getMessageHeaders();
this.template.convertAndSend("/topic/Default", compress("{Dummy Json}"),headers);

public static String compress(String str) {
   try {
   ByteArrayOutputStream out = new ByteArrayOutputStream();
   GZIPOutputStream gzip = new GZIPOutputStream(out);
   gzip.write(str.getBytes());
   gzip.close();
   String outStr = out.toString("UTF-8");
   return outStr;
   }
rt4zxlrg

rt4zxlrg1#

你可以添加下面的配置来压缩它

server.compression.enabled: true
server.compression.mime-types=application/json,application/xml,text/html,text/xml,text/plain,application/javascript,text/css,image/jpeg

相关问题