springboot websocket发送图片(base64),使用wss发送产生延迟?

项目使用websocket来发送图片base64编码,使用https端口即wss协议时,消息发送会发生延迟;
比如:
第一次发送图片A;发送之后wss连接则没有收到消息
第二次发送图片B;发送之后wss连接则收到图片A
第三次发送图片C;发送之后wss连接则收到图片B
假如后续没有图片发送,则图片C无法接收成功;
在使用http端口即ws协议时,则无上述发送异常;
消息是使用了对象转json字符串;

下面是消息发送的代码;

            String path = "D:\\test\\test.jpg";
            log.info(path);
        
            FileInputStream fileInputStream = new FileInputStream(path);
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            byte[] b = new byte[1024];
            int len = -1;
            while ((len = fileInputStream.read(b)) != -1) {
                bos.write(b, 0, len);
            }
            byte[] fileByte = bos.toByteArray();
        
            //进行base64位加密
            BASE64Encoder encoder = new BASE64Encoder();
            String data = encoder.encode(fileByte);
        
            List<Message> cameraList = new ArrayList<>();
            Message message = new Message();
            message.setEquipmentId(equipmentId);
            message.setIcon(data);
            cameraList.add(message);
        
        
            sendToEquipmentId(JSON.toJSONString(cameraList),equipmentId);
public void sendToEquipmentId(String json,Integer userId) {
        if(CLIENTS.size()==0){
            return;
        }

        Session s = CLIENTS.get(userId);
        if (s.isOpen()) {
            try {
                synchronized (s)
                {
                    s.getBasicRemote().sendText(json);
//                        log.info("发送给"+userId+"客户端的消息: {}", json);
                }
            } catch (IOException e) {
                log.error("异常处理",e);
            }
        }

    }
阅读 2.3k
1 个回答
新手上路,请多包涵

好问题,我也不知道怎么解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题