2021年6月29日:线路功能再次新增,多域名可针对单一线路提供服务

2021年6月29日:线路功能再次新增,多域名可针对单一线路提供服务

这次更新是将昨天更新的线路功能再次升级一下,这次单线路中可以设置多域名多服务器同时提供服务,什么意思呢?比如我设置了一个线路,名为默认线路,默认线路设置为默认,然后开放给所有用户,包括登录用户和未登录用户都能观看,然后因为默认线路的负载比较高,可能一个服务器没办法提供足够的带宽资源,于是我就可以设置多个域名,对应多个服务器给默认线路这一个线路提供服务

设置域名:https://a.com|https://b.com|https://c.com

当用户加载默认线路时,实际m3u8内容中可能是这样的:

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:18
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:17.400000,
https://a.com/index0.ts
#EXTINF:10.000000,
https://b.com/index1.ts
#EXTINF:5.480000,
https://b.com/index2.ts
#EXTINF:14.200000,
https://b.com/index3.ts
#EXTINF:4.800000,
https://c.com/index4.ts
#EXTINF:10.000000,
https://a.com/index5.ts
#EXTINF:17.720000,
https://c.com/index6.ts
#EXT-X-ENDLIST

也就是在加载的M3U8中,ts会随机使用你设置的多域名,让多服务器负载均衡这一个线路

截图如下:

api远程调用

获取线路列表

    GET /api2/lines

    #返回数据
    [
        {
            "group": null,
            "vipGroup": null,
            "createAt": "2021-06-28T03:55:16.236Z",
            "_id": "60da81313b870875ec5d9fa4",
            "title": "组合线路",
            "url": "https://cdn1.efvcms.com|https://cdn2.efvcms.com",
            "open": "on",
            "default": "on",
            "notlogin": "on",
            "__v": 0
       },
        {
            "group": null,
            "vipGroup": null,
           "createAt": "2021-06-28T03:55:16.236Z",
           "_id": "60da817b3b870875ec5da0b5",
            "title": "cn2线路",
            "url": "https://cdn3.efvcms.com",
            "open": "on",
            "default": null,
            "notlogin": "on",
            "__v": 0
        }
    ]
    
m3u8调用指定线路

    https://域名/index.m3u8?line=线路id

m3u8调用示例

    #直接访问,则自动调用默认线路
    /videos/60d88e0d66c8886d0a961818/720/index.m3u8

    #使用上述线路列表示例的cn2线路
    /videos/60d88e0d66c8886d0a961818/720/index.m3u8?line=60da817b3b870875ec5da0b5