zoukankan      html  css  js  c++  java
  • RTMP协议web直播点播平台EasyDSS对接云服务Go 语言中 do while 语句的实现方法

    EasyDSS是TSINGSEE青犀视频开发的RTMP推流平台,能够对接腾讯云、阿里云等云服务,并且提供编程语言无关化的RESTfulAPI接口,可以很简单的进行二次开发和应用。

    在EasyDSS的开发对接第三方金山云、阿里云等云服务功能的过程中,Go 层需要从远端获取数据,收到云服务返回的结果,根据结果判断是否需要发送下一次请求。

    在该交互过程中,如果第一次返回结果说明数据已经被读取完毕,则直接跳出循环。如果第一次返回结果说明数据没有被读取完毕,则发出下一次请求。即至少发送一次请求,类似代码实现如下:

    int i = 1;
    do{
       System.out.println("好好学习!");
       i++;
    }while(i<=100);
    

    但是在 Go 语言中无此操作,仅有 for 关键词,因此需要使用 for 关键词实现 do while 的功能。代码如下

    var i int64 = 1
    for {
       req := vs.CreateDescribeGroupsRequest()
       req.PageNum = requests.NewInteger64(i)
       res := gClientVS.DescribeGroups(vs.CreateDescribeGroupsRequest())
    
       for _, group := range res.Groups {
          gProcessSpaceChan <- group
       }
    
       if i >= res.PageCount {
          break
       }
    
       i++
    }
    

    以上代码为获取数据后,判断返回结果,如果i已经比剩余数据大,则退出循环。代码至少会执行一次,因此实现了 do while 功能。

    当然了,EasyDSS内还运用了很多其他层面的开发技巧,大家可以关注我们,我们将在博客内不定期更新。如果还想了解EasyDSS更多相关内容,欢迎联系我们或者直接访问TSINGSEE青犀视频官方网站。

  • 相关阅读:
    Linux磁盘分区(二):删除
    Linux磁盘分区(一):添加
    Linux下查看系统版本号信息的方法
    php计算多个集合的笛卡尔积实例详解
    linux下php7安装memcached、redis扩展
    Linux积累 命令之cat和wc
    php数据结构与算法
    主流PHP框架间的比较(Zend Framework,CakePHP,CodeIgniter,Symfony,ThinkPHP,FleaPHP)
    [深入学习Redis]RedisAPI的原子性分析
    Cookie例子
  • 原文地址:https://www.cnblogs.com/easydss/p/14283132.html
Copyright © 2011-2022 走看看