From fc07520fabe25026a98e85f00b69a4a4ab6ac7ae Mon Sep 17 00:00:00 2001 From: Alexander Emelin Date: Fri, 8 Oct 2021 18:56:53 +0300 Subject: [PATCH] proxy data in subscribe result --- internal/proxy/subscribe_handler.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/internal/proxy/subscribe_handler.go b/internal/proxy/subscribe_handler.go index d10fabea41..b01cc9b1fe 100644 --- a/internal/proxy/subscribe_handler.go +++ b/internal/proxy/subscribe_handler.go @@ -89,6 +89,7 @@ func (h *SubscribeHandler) Handle(node *centrifuge.Node) SubscribeHandlerFunc { position := chOpts.Position var info []byte + var data []byte if subscribeRep.Result != nil { if subscribeRep.Result.B64Info != "" { decodedInfo, err := base64.StdEncoding.DecodeString(subscribeRep.Result.B64Info) @@ -100,6 +101,16 @@ func (h *SubscribeHandler) Handle(node *centrifuge.Node) SubscribeHandlerFunc { } else { info = subscribeRep.Result.Info } + if subscribeRep.Result.B64Data != "" { + decodedData, err := base64.StdEncoding.DecodeString(subscribeRep.Result.B64Data) + if err != nil { + node.Log(centrifuge.NewLogEntry(centrifuge.LogLevelError, "error decoding base64 data", map[string]interface{}{"client": client.ID(), "error": err.Error()})) + return centrifuge.SubscribeReply{}, centrifuge.ErrorInternal + } + data = decodedData + } else { + data = subscribeRep.Result.Data + } result := subscribeRep.Result @@ -124,6 +135,7 @@ func (h *SubscribeHandler) Handle(node *centrifuge.Node) SubscribeHandlerFunc { JoinLeave: joinLeave, Recover: useRecover, Position: position, + Data: data, }, ClientSideRefresh: true, }, nil