zoukankan      html  css  js  c++  java
  • 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启动的,如果有朋友不明白,可以关注我们,如需测试或者了解更多,也可以直接联系我们,欢迎大家的咨询。

  • 相关阅读:
    Maven name=archetypeCatalog value=internal
    ResponseBody和文件上传
    Idea控制台中文乱码
    idea tomcat部署项目路径
    git 常用操作
    webpack
    AbstractQueuedSynchronizer-AQS
    线程安全
    cpu多级缓存
    Axure中继器设置单选
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/14189931.html
Copyright © 2011-2022 走看看