You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
4.7 KiB
159 lines
4.7 KiB
package dispatch |
|
|
|
import ( |
|
"fmt" |
|
"testing" |
|
) |
|
|
|
func TestMatcher(t *testing.T) { |
|
config := []byte(`{ |
|
"ip_max_limit": 2, |
|
"default_domain" : "broadcastlv.chat.bilibili.com", |
|
"danmaku_common_dispatch": { |
|
"china" :{ |
|
"china_telecom": { |
|
"master": { |
|
"tencent_shanghai": 10, |
|
"tencent_guangzhou": 6, |
|
"kingsoft": 24 |
|
}, |
|
"slave": { |
|
"tencent_shanghai": 10, |
|
"tencent_guangzhou": 6, |
|
"kingsoft": 24, |
|
"aliyun": 30 |
|
} |
|
}, |
|
"china_unicom": { |
|
"master": { |
|
"tencent_shanghai": 10, |
|
"tencent_guangzhou": 6, |
|
"kingsoft": 24 |
|
}, |
|
"slave": { |
|
"tencent_shanghai": 10, |
|
"tencent_guangzhou": 6, |
|
"kingsoft": 24, |
|
"aliyun": 30 |
|
} |
|
}, |
|
"cmcc": { |
|
"master": { |
|
"tencent_shanghai": 10, |
|
"tencent_guangzhou": 6, |
|
"kingsoft": 24 |
|
}, |
|
"slave": { |
|
"tencent_shanghai": 10, |
|
"tencent_guangzhou": 6, |
|
"kingsoft": 24, |
|
"aliyun": 30 |
|
} |
|
}, |
|
"other": { |
|
"master": { |
|
"tencent_shanghai": 10, |
|
"tencent_guangzhou": 6, |
|
"kingsoft": 24 |
|
}, |
|
"slave": { |
|
"tencent_shanghai": 10, |
|
"tencent_guangzhou": 6, |
|
"kingsoft": 24, |
|
"aliyun": 30 |
|
} |
|
} |
|
}, |
|
"oversea": [ |
|
{ |
|
"rule":"($lng >= -20) && ($lng <= 160)", |
|
"master": { |
|
"tencent_siliconvalley": 10 |
|
}, |
|
"slave": { |
|
"tencent_shanghai": 10, |
|
"tencent_guangzhou": 6, |
|
"kingsoft": 24, |
|
"aliyun": 30 |
|
} |
|
}, |
|
{ |
|
"master": { |
|
"tencent_siliconvalley": 10 |
|
}, |
|
"slave": { |
|
"tencent_shanghai": 10, |
|
"tencent_guangzhou": 6, |
|
"kingsoft": 24, |
|
"aliyun": 30 |
|
} |
|
} |
|
], |
|
"unknown" : { |
|
"master": { |
|
"tencent_shanghai": 10, |
|
"tencent_guangzhou": 6, |
|
"kingsoft": 24 |
|
}, |
|
"slave": { |
|
"tencent_shanghai": 10, |
|
"tencent_guangzhou": 6, |
|
"kingsoft": 24, |
|
"aliyun": 30 |
|
} |
|
} |
|
}, |
|
"danmaku_vip_dispatch" : [ |
|
{ |
|
"rule":"$uid==120497668", |
|
"ip": ["118.89.14.174"] |
|
}, |
|
{ |
|
"rule":"$uid % 10 == 1", |
|
"group": ["tencent_guangzhou"] |
|
}, |
|
{ |
|
"rule":"$uid == 221122111" |
|
} |
|
], |
|
"danmaku_comet_group": { |
|
"tencent_shanghai": [ |
|
"118.89.14.174", |
|
"118.89.14.115", |
|
"118.89.14.103", |
|
"118.89.14.206", |
|
"118.89.13.229" |
|
], |
|
"tencent_guangzhou": [ |
|
"211.159.194.41", |
|
"211.159.194.115", |
|
"211.159.194.105" |
|
], |
|
"tencent_hongkong": [ |
|
"119.28.56.183" |
|
], |
|
"tencent_siliconvalley": [ |
|
"49.51.37.200" |
|
], |
|
"kingsoft": [ |
|
"120.92.78.57", |
|
"120.92.158.137", |
|
"120.92.112.150" |
|
], |
|
"aliyun": [ |
|
"101.132.195.89", |
|
"47.104.64.120", |
|
"59.110.167.237", |
|
"47.92.112.162", |
|
"47.96.139.69", |
|
"119.23.41.85" |
|
] |
|
} |
|
}`) |
|
m, err := NewMatcher(config, nil, nil, nil) |
|
if err != nil { |
|
t.Error(err) |
|
t.Fail() |
|
} |
|
fmt.Println(m) |
|
}
|
|
|