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

posted on 2021-01-15 17:13  EasyDSS  阅读(74)  评论(0编辑  收藏  举报