summaryrefslogtreecommitdiffstats
path: root/internal/handler/websocket
diff options
context:
space:
mode:
Diffstat (limited to 'internal/handler/websocket')
-rw-r--r--internal/handler/websocket/handler.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/internal/handler/websocket/handler.go b/internal/handler/websocket/handler.go
index 2d531e9..c285df6 100644
--- a/internal/handler/websocket/handler.go
+++ b/internal/handler/websocket/handler.go
@@ -43,8 +43,8 @@ func (h *Handler) SetIndexData(grpcAddr, httpAddr, wsAddr string) {
43} 43}
44 44
45func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { 45func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
46 // Handle GET requests 46 // Handle GET requests (but not WebSocket upgrades)
47 if r.Method == "GET" { 47 if r.Method == "GET" && r.Header.Get("Upgrade") != "websocket" {
48 accept := r.Header.Get("Accept") 48 accept := r.Header.Get("Accept")
49 49
50 // NIP-11: Relay information document 50 // NIP-11: Relay information document
@@ -58,6 +58,7 @@ func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
58 return 58 return
59 } 59 }
60 60
61 // Handle WebSocket upgrade
61 conn, err := websocket.Accept(w, r) 62 conn, err := websocket.Accept(w, r)
62 if err != nil { 63 if err != nil {
63 log.Printf("WebSocket accept failed: %v", err) 64 log.Printf("WebSocket accept failed: %v", err)