繁体   English   中英

使用socket.io向客户端发射图像

[英]emit images to the client using socket.io

是否建议使用socket.io从服务器向客户端发送图像url,然后在客户端上,用户侦听图像发出事件并显示在网页上? 为什么我们需要在服务器端对图像进行base64编码,然后将图像url发送到client的更简单方法,然后将其发送给客户端。

如果没有技术上的原因,您不能仅通过socket.io发送URL并获取客户端代码,则创建一个图像对象并将.src设置为该URL,以使浏览器可以通过URL以标准方式获取图像,那么那绝对是首选。 当然,您必须确保在提供URL时Web服务器已准备好为该图像提供服务,并且如果该图像是该用户的唯一内容,则URL也必须是唯一的。

这样一来,浏览器就可以使用最优化的代码下载二进制图像,浏览器缓存它们,让其他网络基础架构(例如代理)进行优化等。

当您有更简便的向客户端发送图像url的方法时,为什么我们需要对服务器端的图像进行base64编码,然后将其发送给客户端?

你不知道

例如,您可以发送带有二进制数据的HTTP响应,在其中将content-type设置为某种二进制内容类型,然后将content-length设置为二进制数据的确切长度。 这是带有二进制数据的JPEG响应的最小示例:

HTTP/1.1 200 OK
Content-Length: 126750
Content-Type: image/jpeg

<binary image data here>

base64是一种在传输不接受二进制数据时发送二进制数据的方案。 听起来您已经知道,它的效率不如发送实际的二进制数据,因此,当传输方和接收方可以处理已知内容类型(例如图像)的二进制数据时,通常首选二进制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM