package cloudflare import "sync-live/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, } }