离线文件发送可以作为即时通讯中网络硬盘的一种特殊情况,可以有多种实现方法。
数据(文件)与元数据(文件信息,包括存储位置,大小,授权等)分离应该是比较好的实践,元数据使用XMPP服务外部组件的形式存储,发送方发送前从xmpp服务取得数据存储位置,发送数据成功后通知xmpp服务,接收方上线后从xmpp服务读取元数据,再根据元数据中的位置信息和授权信息取得真实数据,完成离线文件传输。
需要解决和权衡的几个问题分别是文件系统选项,授权和客户端工作量,amazon的S3是个不错的选择,可是国内网络和使用都不方便,开源的
Eucalyptus支持S3接口倒是可以考虑,而且S3做文件授权也方便。
mongodb做存储也是不错的选择,可是mongodb的验证系统还较为简单,除了使用临时用户没有别的方式实现授权。
S3和Mongodb都可以提供高可用的集群支持。
BOSS提供了另一种方案,直接改造Proxy65,这种方案对客户端开发人员来说代价最小,可以很快出来可用的原型。
Proxy65提供的是字节流的代理传输,在两个TCP(UDP可选)连接之间开辟通道实现字节流(可理解为文件)的传输,只需将传递字节流改为存储字节流即可。
xmmp 离线文件
最新推荐文章于 2019-04-20 17:42:18 发布