我已经建立了一个可以发送图片的网络应用程序。对于小图片来说一切都很好。但是一旦它变大了一点~ 1000 x1000 px,socket.io就不发射了。它甚至没有声明一个错误。它就是不发送图片。
这是我的对象的外观:
chatBlock = {
username: "",
message: "",
date: new Date(),
file: null,
imgWidth: 0,
imgHeight: 0,
};
我就是这么发的
socket.emit('msgSend', chatBlock);
所以实际上非常基本,但是一旦图像(对象中的命名文件)变大,它就不发送它。
2条答案
按热度按时间ni65a41a1#
Socket.io 有邮件大小限制:请参阅www.example.com上的文档中的选项
maxHttpBufferSize
https://socket.io/docs/v4/server-options/#maxhttpbuffersize。您可以增加此限制,但请记住,将图像解析为JSON不是很有效。从长远来看,请考虑单独上传图像-常见的解决方案是使用HTTPPOST,获取上传的URL,然后将其发送给收件人。这更复杂,但完全避免了消息大小问题,因为文件上载可以是任何大小并且仍然以有效的方式流式传输。ctzwtxfj2#
正如官方文档所说,您应该使用maxhttpbuffersize
如果使用快递:
但是这个值是火星上的东西,叫做SI前缀
SI prefixmega表示106的因子,或者用指数表示法表示为1E6。
以下是用作maxhttpbuffersize的一些值
以下是一些值:https://physics.nist.gov/cuu/Units/prefixes.html
PD:我没有找到如何设置1.5 MB