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