WebSocket发送图片或文件的思路(2)

    前段时间,写了一篇关于WebSocket发送图片或文件的思路的文章,主要是记录我在开发过程中的思想和一些问题考虑,这次我是关于一些大文件或者大图不压缩的情况下,如何传输的思路。

    1、首先大图或者大的文件肯定是分段发送,然后到服务端统一处理,websocket的web端我建议是直接获取服务器端生成的图片地址,这样可以减少传输的字节,节省流量,也防止用户刷新,导致重新获取的许多问题;

   2、分段发送的时候,加一个唯一性数据标识,用js生成Guid。示例代码如下。

function generateUUID() {
var d = new Date().getTime();
var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' .replace(/[xy]/g, function (c) {
   var r = (d + Math.random()*16)%16 | 0;
   d = Math.floor(d/16);
   return (c== 'x' ? r : (r&0x3|0x8)).toString(16);
});
return uuid;
};

3、当服务端收到分段的数据,当接受到最后一段的时候,把所有的标识一样的数据,全部设置为已经接受完成,然后再执行图片生成处理。具体如何实现,可以用缓存服务器或者用数据库,然后使用触发器去实现。



   



猜你喜欢

转载自blog.csdn.net/qq165285727/article/details/78841830