From 42dbadb94705c203b8f39fccb379ae50c53e3412 Mon Sep 17 00:00:00 2001 From: Marcelo Pires Date: Wed, 5 Sep 2018 11:28:55 +0200 Subject: [PATCH] add debug option --- transport/websocket/websocket.go | 41 ++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/transport/websocket/websocket.go b/transport/websocket/websocket.go index 518ad0f..3596226 100644 --- a/transport/websocket/websocket.go +++ b/transport/websocket/websocket.go @@ -1,9 +1,11 @@ package websocket import ( + "encoding/json" "github.com/gorilla/websocket" "github.com/thesyncim/faye/message" "github.com/thesyncim/faye/transport" + "log" "strconv" "sync/atomic" ) @@ -14,6 +16,13 @@ func init() { transport.RegisterTransport(&Websocket{}) } +var Debug = true + +func debugJson(v interface{}) string { + b, _ := json.MarshalIndent(v, "", " ") + return string(b) +} + type Websocket struct { TransportOpts *transport.Options conn *websocket.Conn @@ -50,11 +59,15 @@ func (w *Websocket) Options() *transport.Options { } func (w *Websocket) Handshake() (err error) { var payload []message.Message - if err = w.conn.WriteJSON(append(payload, message.Message{ + payload = append(payload, message.Message{ Channel: string(transport.Handshake), Version: "1.0", //todo const SupportedConnectionTypes: []string{transportName}, - })); err != nil { + }) + if Debug { + log.Println("handshake request", debugJson(payload)) + } + if err = w.conn.WriteJSON(payload); err != nil { return err } @@ -62,6 +75,9 @@ func (w *Websocket) Handshake() (err error) { if err = w.conn.ReadJSON(&hsResps); err != nil { return err } + if Debug { + log.Println("handshake response", debugJson(hsResps)) + } resp := hsResps[0] if resp.GetError() != nil { @@ -73,20 +89,24 @@ func (w *Websocket) Handshake() (err error) { func (w *Websocket) Connect() error { var payload []message.Message - //todo verify if extensions are applied on connect,verify if hs is complete - return w.conn.WriteJSON(append(payload, message.Message{ + payload = append(payload, message.Message{ Channel: string(transport.Connect), ClientId: w.clientID, ConnectionType: transportName, Id: w.nextMsgID(), - })) + }) + if Debug { + log.Println("connect request", debugJson(payload)) + } + //todo verify if extensions are applied on connect,verify if hs is complete + return w.conn.WriteJSON(payload) } func (w *Websocket) Subscribe(subscription string, onMessage func(message *message.Message)) error { m := &message.Message{ Channel: string(transport.Subscribe), ClientId: w.clientID, - Subscription: "/" + subscription, + Subscription: subscription, Id: w.nextMsgID(), } if w.TransportOpts.OutExt != nil { @@ -94,7 +114,11 @@ func (w *Websocket) Subscribe(subscription string, onMessage func(message *messa } var payload []message.Message - err := w.conn.WriteJSON(append(payload, *m)) + payload = append(payload, *m) + if Debug { + log.Println("subscribe request", debugJson(payload)) + } + err := w.conn.WriteJSON(payload) if err != nil { return err } @@ -103,6 +127,9 @@ func (w *Websocket) Subscribe(subscription string, onMessage func(message *messa if err = w.conn.ReadJSON(&hsResps); err != nil { return err } + if Debug { + log.Println("subscribe response", debugJson(hsResps)) + } subResp := hsResps[0] if subResp.GetError() != nil {