• RTSP视频智能分析平台EasyNVR多nginx启动时getlivesessions接口如何返回所有nginx数据?


    我们讲过TSINGSEE青犀视频云边端智能分析平台支持多nginx启动,多nginx启动的目的主要是为了缓解一个nginx启动时带来的压力。

    测试多nginx启动期间,视频智能分析平台EasyNVR的getlivesessions接口正常来说应该会返回所有nginx的数据,但实际上只返回了默认nginx的数据,没有其他nginx的数据。

    EasyNVR视频平台的getlivesessions接口返回的nginx信息,其实是需要golang从nginx的http://127.0.0.1:10100/getlivesessions这个接口获取的数据,然后拼装下返回到前端。而该问题就是golang只需要向默认的nginx接口请求,并返回了数据。

    此处是不开启多nginx时,golang只需要向默认的nginx的接口请求然后返回数据;

    此处是开启多nginx时,golang需要向所有的nginx的接口请求返回数据。因此我们按照如下调用接口请求,获取数据:

    func getReuslts(index int) (results []gjson.Result) {
       client := http.Client{
          Timeout: 3 * time.Second,
       }
       resp := &http.Response{}
       var err error
       if index == 0 {
          resp, err = client.Get(fmt.Sprintf("http://127.0.0.1:%d/getlivesessions", GetHTTPPort()))
       } else {
          resp, err = client.Get(fmt.Sprintf("http://127.0.0.1:%d/getlivesessions", GetMutliHTTPPort(index)))
       }
       if err != nil {
          return
       }
       defer resp.Body.Close()
       body, err := ioutil.ReadAll(resp.Body)
       if err != nil {
          return
       }
       gsessions := gjson.GetBytes(body, "EasyDSS.Body.Sessions.Sessions")
       if !gsessions.IsArray() {
          return
       }
       return gsessions.Array()
    }
    
    

    如此,便能获取所有nginx接口的返回数据了。TSINGSEE青犀视频其他视频平台比如EasyGBS、EasyCVR等都是支持多nginx启动的,如果有朋友不明白,可以关注我们,如需测试或者了解更多,也可以直接联系我们,欢迎大家的咨询。

  • 相关阅读:
    .net类库里ListView的一个BUG
    获取lable的caption, 摘抄还未测试可用否
    (转) lua实现split的简易方法
    2. SharePoint Online 开发,请联系qq512800530。加好备注。(不要发站内信。。。)
    1. android
    开发人员应关注的20个jQuery网站/博客
    Temp
    彩票项目开发节项
    求android ble 解决方案!
    自己开发的工作流引擎
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/14189931.html
Copyright © 2020-2023  润新知