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青犀视频官方网站。

  • 相关阅读:
    nginx 09-Nginx部署https
    nginx 08-Nginx的rewrite规则
    nginx 07-Nginx缓存服务
    nginx 06-Nginx代理服务
    LBP及纹理表达 转自http://blog.sina.com.cn/s/blog_ba9d7d9901018k4v.html
    双边滤波与引导滤波
    层次聚类,转自http://blog.sina.com.cn/s/blog_62f3c4ef01014uhe.html
    有用的matlab函数(不断加入)
    显著目标检测思路
    matlab曲线、图形绘制方法(不断更新)
  • 原文地址:https://www.cnblogs.com/easydss/p/14283132.html
Copyright © 2011-2022 走看看