gpt4 book ai didi

java - 尝试发送大尺寸图像时 WebSocket 断开连接

转载 作者:行者123 更新时间:2023-11-30 11:29:08 26 4
gpt4 key购买 nike

我正在本地主机上使用 java 和 javascirpt 测试 WebSocket,运行 Tomcat 7.0.42,中间没有代理。它适用于通过 websocket 发送文本和小尺寸图像。但是,当尝试发送大尺寸照片时,它将强制关闭客户端(chrome 浏览器)的连接(请注意,在浏览器上的 websocket 关闭后,不会通知 tomcat 的 'onClose callback in MessageInbound'连接)。

我该如何解决?谢谢。

Here is the capture from chrome development tool

下面是我在客户端的代码:

for (var i = 0, f; f = files[i]; i++) {

// step 1: tell server who the people you want to send
ws.send(JSON.stringify({
action: "binary",
receiver: <%=selectedfriend.getUserId()%>,
timestamp: new Date().getTime()
}));

// step 2: send file
ws.send(f);

var reader = new FileReader();
reader.onload = (function(theFile) {
return function(e) {
var span = document.createElement('span');
span.innerHTML = ['<img class="thumb" style="width: 50px;height: 30px;" src="', e.target.result,
'" title="', escape(theFile.name), '"/>'].join('');
appendImage(span.innerHTML, "pullleft");
};
})(f);
reader.readAsDataURL(f);
}

最佳答案

最后,我找到了我的问题的解决方案,我在 Tomcat 上所做的是使用:

    protected StreamInbound createWebSocketInbound(String string, HttpServletRequest hsr) {

MyMessageInbound inbound = new MyMessageInbound();

inbound.setByteBufferMaxSize(9999999);
inbound.setOutboundByteBufferSize(9999999);

return inbound;
}

但是还有一个问题是:我应该使用多少合适的值,这里是9999999,这个值应该在我使用WebSocket上传8-9MB的文件时测试得很好,但是为什么,我该如何测量呢?请大家再次在这里帮忙讨论,thx!

关于java - 尝试发送大尺寸图像时 WebSocket 断开连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18583948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com