From 02d70ee5dbcc205f2fcc91cbfbf41444870041b9 Mon Sep 17 00:00:00 2001 From: Adam French Date: Thu, 22 Jan 2026 10:23:33 +0000 Subject: [PATCH] init commit websocket --- backend/go.mod | 1 + backend/go.sum | 2 ++ backend/handlers/handle_websocket.go | 22 ++++++++++++++++++++++ backend/main.go | 2 ++ backend/services/websocket.go | 10 ++++++++++ 5 files changed, 37 insertions(+) create mode 100644 backend/handlers/handle_websocket.go create mode 100644 backend/services/websocket.go diff --git a/backend/go.mod b/backend/go.mod index fd7d833..5be142f 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -24,6 +24,7 @@ require ( github.com/goccy/go-json v0.10.2 // indirect github.com/goccy/go-yaml v1.18.0 // indirect github.com/golang/protobuf v1.5.2 // indirect + github.com/gorilla/websocket v1.5.3 // indirect github.com/jackc/pgpassfile v1.0.0 // indirect github.com/jackc/pgservicefile v0.0.0-20240606120523-5a60cdf6a761 // indirect github.com/jackc/pgx/v5 v5.6.0 // indirect diff --git a/backend/go.sum b/backend/go.sum index 2a201cb..952be2f 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -127,6 +127,8 @@ github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hf github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= diff --git a/backend/handlers/handle_websocket.go b/backend/handlers/handle_websocket.go new file mode 100644 index 0000000..0b4f20e --- /dev/null +++ b/backend/handlers/handle_websocket.go @@ -0,0 +1,22 @@ +package handlers + +import ( + "time" + + "adam-french.co.uk/backend/services" + "github.com/gin-gonic/gin" + "github.com/gorilla/websocket" +) + +func (store *Store) ConnectWebSocket(ctx *gin.Context) { + conn, err := services.Upgrader.Upgrade(ctx.Writer, ctx.Request, nil) + if err != nil { + ctx.JSON(500, gin.H{"error": err.Error()}) + return + } + defer conn.Close() + for { + conn.WriteMessage(websocket.TextMessage, []byte("Hello Websocket!")) + time.Sleep(time.Second) + } +} diff --git a/backend/main.go b/backend/main.go index 95c7760..364a63d 100644 --- a/backend/main.go +++ b/backend/main.go @@ -85,6 +85,8 @@ func main() { r.GET("/spotify/recent", store.RecentlyPlayed) // r.POST("/spotify", store.SendSong) + r.GET("/ws", store.ConnectWebSocket) + r.GET("/notes/*path", store.GetNoteFile) r.GET("/", func(c *gin.Context) { diff --git a/backend/services/websocket.go b/backend/services/websocket.go new file mode 100644 index 0000000..7511961 --- /dev/null +++ b/backend/services/websocket.go @@ -0,0 +1,10 @@ +package services + +import ( + "github.com/gorilla/websocket" +) + +var Upgrader = websocket.Upgrader{ + ReadBufferSize: 1024, + WriteBufferSize: 1024, +}