43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package cloudflare
|
|
|
|
import "gospeak-live-sfu-demo/gen"
|
|
|
|
// Provider 暴露 Cloudflare Realtime 后端的能力信息,并持有底层 REST 客户端。
|
|
type Provider struct {
|
|
client *Client
|
|
appID string
|
|
stun string
|
|
configured bool
|
|
}
|
|
|
|
func NewProvider(appID, appSecret, baseURL, stun string) *Provider {
|
|
return &Provider{
|
|
client: NewClient(appID, appSecret, baseURL),
|
|
appID: appID,
|
|
stun: stun,
|
|
configured: appID != "" && appSecret != "",
|
|
}
|
|
}
|
|
|
|
func (p *Provider) Name() string { return "cloudflare" }
|
|
func (p *Provider) Primary() bool { return true }
|
|
func (p *Provider) Configured() bool { return p.configured }
|
|
func (p *Provider) Client() *Client { return p.client }
|
|
func (p *Provider) AppID() string { return p.appID }
|
|
|
|
func (p *Provider) Stun() string {
|
|
if p.stun == "" {
|
|
return "stun:stun.cloudflare.com:3478"
|
|
}
|
|
return p.stun
|
|
}
|
|
|
|
func (p *Provider) BackendInfo() *gen.BackendInfo {
|
|
return &gen.BackendInfo{
|
|
Kind: gen.BackendKind_BACKEND_KIND_CLOUDFLARE,
|
|
Name: "Cloudflare Realtime",
|
|
Configured: p.configured,
|
|
Primary: true,
|
|
}
|
|
}
|