From 99264c6715cf1ae73c068f556cce538b568a119c Mon Sep 17 00:00:00 2001 From: bvbej Date: Sat, 7 Sep 2024 15:44:13 +0800 Subject: [PATCH] =?UTF-8?q?[=F0=9F=9A=80]=20=20Ticker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/sse/server.go | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/pkg/sse/server.go b/pkg/sse/server.go index dde6a99..d451294 100644 --- a/pkg/sse/server.go +++ b/pkg/sse/server.go @@ -1,12 +1,15 @@ package sse import ( + "fmt" "gitea.bvbej.com/bvbej/base-golang/pkg/mux" + "gitea.bvbej.com/bvbej/base-golang/pkg/ticker" "github.com/gin-gonic/gin" "io" "net/http" "sync" "sync/atomic" + "time" ) var _ Server = (*event)(nil) @@ -31,9 +34,9 @@ type msgChan struct { type event struct { SessionList sync.Map Count atomic.Int32 - - Register chan clientChan - Unregister chan any + Register chan clientChan + Unregister chan any + Ticker ticker.Ticker } func NewServer() Server { @@ -42,8 +45,12 @@ func NewServer() Server { Count: atomic.Int32{}, Register: make(chan clientChan), Unregister: make(chan any), + Ticker: ticker.New(time.Second * 3), } + go e.Ticker.Process(func() { + e.Broadcast("ping", fmt.Sprintf("%d", time.Now().Unix())) + }) go e.listen() return e