From 315c01a2fb6941d218b45f774076d66f4ce3fe9b Mon Sep 17 00:00:00 2001 From: William Woodward Date: Wed, 17 Oct 2018 10:17:14 -0400 Subject: [PATCH 1/2] Unknown ticket Add replication of ping/pong messages --- websocketproxy.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/websocketproxy.go b/websocketproxy.go index 29f5bda..558eb56 100644 --- a/websocketproxy.go +++ b/websocketproxy.go @@ -196,6 +196,18 @@ func (w *WebsocketProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) { } } + replicatePingPong := func(dst, src *websocket.Conn) { + src.SetPingHandler(func(appData string) error { + return dst.WriteControl(websocket.PingMessage, []byte(appData), time.Time{}) + }) + src.SetPongHandler(func(appData string) error { + return dst.WriteControl(websocket.PongMessage, []byte(appData), time.Time{}) + }) + } + + replicatePingPong(connPub, connBackend) + replicatePingPong(connBackend, connPub) + go replicateWebsocketConn(connPub, connBackend, errClient) go replicateWebsocketConn(connBackend, connPub, errBackend) From cabc2baa229cdc8e7b19790e54f6e27eff5a17bb Mon Sep 17 00:00:00 2001 From: William Woodward Date: Wed, 17 Oct 2018 10:40:26 -0400 Subject: [PATCH 2/2] Unknown ticket Adding the time package --- websocketproxy.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/websocketproxy.go b/websocketproxy.go index 558eb56..b1b1156 100644 --- a/websocketproxy.go +++ b/websocketproxy.go @@ -9,6 +9,7 @@ import ( "net/http" "net/url" "strings" + "time" "github.com/gorilla/websocket" ) @@ -207,7 +208,7 @@ func (w *WebsocketProxy) ServeHTTP(rw http.ResponseWriter, req *http.Request) { replicatePingPong(connPub, connBackend) replicatePingPong(connBackend, connPub) - + go replicateWebsocketConn(connPub, connBackend, errClient) go replicateWebsocketConn(connBackend, connPub, errBackend)