From e99a8dbcd6d73937e8c12468c412f6cdad1d3bc6 Mon Sep 17 00:00:00 2001 From: bvbej Date: Sat, 7 Sep 2024 15:53:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[=F0=9F=9A=80]=20=20message?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/sse/server.go | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/pkg/sse/server.go b/pkg/sse/server.go index d451294..b724268 100644 --- a/pkg/sse/server.go +++ b/pkg/sse/server.go @@ -1,15 +1,12 @@ 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) @@ -36,7 +33,6 @@ type event struct { Count atomic.Int32 Register chan clientChan Unregister chan any - Ticker ticker.Ticker } func NewServer() Server { @@ -45,12 +41,8 @@ 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 @@ -137,6 +129,8 @@ func (stream *event) GinHandlerFunc(auth func(c *gin.Context) (string, error)) g } return false }) + + e <- msgChan{Name: "message", Message: "success"} } } -- 2.34.1 From ad1e06229f2adb78088475ad240b804e4fadfa74 Mon Sep 17 00:00:00 2001 From: bvbej Date: Sat, 7 Sep 2024 15:55:14 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[=F0=9F=9A=80]=20=20message?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/sse/server.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/sse/server.go b/pkg/sse/server.go index b724268..c502c25 100644 --- a/pkg/sse/server.go +++ b/pkg/sse/server.go @@ -7,6 +7,7 @@ import ( "net/http" "sync" "sync/atomic" + "time" ) var _ Server = (*event)(nil) @@ -122,6 +123,10 @@ func (stream *event) GinHandlerFunc(auth func(c *gin.Context) (string, error)) g c.Writer.Header().Set("Connection", "keep-alive") c.Writer.Header().Set("Transfer-Encoding", "chunked") + time.AfterFunc(time.Second, func() { + e <- msgChan{Name: "message", Message: "success"} + }) + c.Stream(func(w io.Writer) bool { if msg, ok := <-e; ok { c.SSEvent(msg.Name, msg.Message) @@ -129,8 +134,6 @@ func (stream *event) GinHandlerFunc(auth func(c *gin.Context) (string, error)) g } return false }) - - e <- msgChan{Name: "message", Message: "success"} } } -- 2.34.1