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);

}

}

}


回答:

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

以上是 springboot websocket发送图片(base64),使用wss发送产生延迟? 的全部内容, 来源链接: utcz.com/p/944568.html

回到顶部