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