diff --git a/cmd/client/main.go b/cmd/client/main.go index 9bb86b7..5a05a50 100644 --- a/cmd/client/main.go +++ b/cmd/client/main.go @@ -79,8 +79,8 @@ func main() { time.Sleep(1 * time.Second) - device.Register(client, clientConfig) message.SetupMessageHandler(srv, client, clientConfig) + device.SetupRegister(client, clientConfig) keepalive.SetupKeepalive(client, clientConfig) device.StartKeepAlive(client) defer device.StopKeepAlive() diff --git a/pkg/services/device/register.go b/pkg/services/device/register.go index bd704f3..e39b0d0 100644 --- a/pkg/services/device/register.go +++ b/pkg/services/device/register.go @@ -11,6 +11,19 @@ import ( "time" ) +var registerSenders = make(map[string]*time.Ticker) + +func SetupRegister(client *sipgo.Client, clientConfig *config.ClientConfig) { + timer := time.NewTicker(time.Second * 3600) + registerSenders[clientConfig.DeviceId] = timer + go func() { + for range timer.C { + Register(client, clientConfig) + } + }() + Register(client, clientConfig) +} + func Register(client *sipgo.Client, clientConfig *config.ClientConfig) { target := sip.Uri{ User: clientConfig.ServerId, @@ -83,6 +96,8 @@ func Register(client *sipgo.Client, clientConfig *config.ClientConfig) { if resp.StatusCode != 403 { log.Log().Info().Msgf("设备:%s 注册成功", clientConfig.DeviceId) + } else { + log.Log().Error().Msgf("设备:%s 注册失败", clientConfig.DeviceId) } log.Log().Info().Msgf(resp.String())