zoukankan      html  css  js  c++  java
  • IM通讯开发中如何文件传输

    现在人们之间的交流大多通过即时通讯工具完成,而这些工具都有文件传输的基本功能。那么在自行通过即时通讯工具进行二次开发后使用该功能呢,下面以国内领先音视频技术的AnyChat互动开发平台为例,实现文件传输功能。

    自AnyChat SDK V4.1.0.1版本开始,AnyChat支持文件传输限速功能。默认设置下,AnyChat的文件传输以及缓冲区传输都是自动检测网络可用带宽,并按“以最短的时间,最快的速度传输”的原则进行网络传输,这种原则可以适应大部分的应用,但在部分应用中,需要预留一些带宽给其它模块,并不希望AnyChat的文件传输占用所有的网络带宽,这种情况下就可以采用限速功能。

    AnyChat文件传输限速功能是针对本地文件上传进行设置,而且是控制总的上传速率,如设置限速为500kbps,则当同时传输1个文件时,最大上传速度为500kbps,如果同时上传2个文件,则每个文件的最大上传速度为250kbps,依此类推。

    BRAC_TransFileBRAC_TransBufferEx两个API均受传输限速功能控制。 

    传输限速接口定义如下:

    1.// 传输缓冲区、文件最大码率控制(参数为int型,0 不限制,以最快速率传输[默认], 否则表示限制码率,单位为:bps)

    2.#define BRAC_SO_NETWORK_TRANSBUFMAXBITRATE      46

    AnyChat平台默认是关闭传输限速功能,开启的方法可参考如下代码(初始化SDK成功之后调用有效,可在需要的地方调用,动态调节):

    1.// 限制上传速度为500kbps(62kBps)

    2.DWORD dwMaxUpRate = 500 * 1000;

    3.BRAC_SetSDKOption(BRAC_SO_NETWORK_TRANSBUFMAXBITRATE,(constchar*)&dwMaxUpRate, sizeof(DWORD));

    若要取消传输限速功能,可参考如下代码:

    1.// 取消限速功能

    2.DWORD dwMaxUpRate = 0;

    3.BRAC_SetSDKOption(BRAC_SO_NETWORK_TRANSBUFMAXBITRATE,(constchar*)&dwMaxUpRate, sizeof(DWORD));

  • 相关阅读:
    C# 以GZip解压缩
    C# 获取时间戳(支持毫秒)
    C#中 DateTime 转 DateTimeOffset
    C# WPF中 SecureString 转 String
    C# 根据文件头判断文件类型
    C#中 MD5 32位加密
    C#中 Stream转为byte[]
    C#中byte[]转BitmapImage
    sql按天分组
    eclispe报错PermGen space
  • 原文地址:https://www.cnblogs.com/hsq0421/p/4171706.html
Copyright © 2011-2022 走看看