拼多多网店怎么开,asp网站做seo,wordpress泽七,做爰全程的网站什么是在线文件 常见的聊天工具#xff0c;比如。。。微信#xff0c;你可以发送一个文件给对端#xff0c;即使对端不在线#xff0c;这个文件也可以暂存在服务器上面#xff0c;直到接收端上线消费或者超时#xff0c;这个叫离线文件。与之对应的#xff0c;在线文件要…什么是在线文件 常见的聊天工具比如。。。微信你可以发送一个文件给对端即使对端不在线这个文件也可以暂存在服务器上面直到接收端上线消费或者超时这个叫离线文件。与之对应的在线文件要求发送方与接收方同时在线且经由接收端同意之后文件才开始传输。
为什么要有在线文件 那就有人问了为啥要有在线文件呢这还得回到离线文件上离线文件每次必定是先从发送端发送到服务端然后再从服务端发送到客户端显然这至少需要两次网络传输˙˙。 在线文件则不同它不经过服务器这个中间商直接完成点对点的传输只需要一次网络传输另外如果在发送端与接收端在同个局域网传输速度会比经过公网发送到服务器快很多倍
如何实现在线文件 一个可行的设计如下主要分为两部分长链接、在线文件。 长链接 长链接作为底层的通用组件抽离出来提供可用的通信链路。我们可以按局域网/UDP优先、服务器中转次之的策略建立多条链接LAN_UDP、LAN_TCP、WAN_UDP、WAN_TCP、SERVER_UDP、SERVER_TCP。 为了提升链接建立的速度采用并发建立的方法Client A预先获取本端的局域网ip、公网ip、以及申请的服务器中转房间号将这些信息通过request请求发送给客户端B这里假设A、B都在线且存在基本消息链路了。Client B收到A的信息则同步收集本端的局域网ip、公网ip通过accept响应发给Client A并向服务器申请打开房间。A、B在各自收到ip信息时也即同时向对端发起连接。 Client A收到连接建立成功的通知后即可开始通知业务层写入数据了优先选择LAN_UDP的方式通信如果该条链路不通则尝试下一优先级的连接。业务传输完成后连接可放入连接池等待下一次复用。
在线文件 在线文件是一种基于底层长链接的业务本端发送request向对端申请传输文件对端同意则回复accept。如果连接池没有已经建立的连接业务层的request/accept可由长链接的request/accept捎带发送。 长链接建立成功后可以发送shake握手包携带文件大小、一次传递的分片大小、md5等信息。 对于TCP类型的链接收发包不需要特殊处理对于udp的链接可以参考TCP的流量控制与拥塞控制可以适当的对一些参数进行调整例如慢启动初值、超时重传时间等。