on develop help sign in
Merge pull request #233 from reflex-frp/fix-json-websocket-binary-frames

Use text instead of binary frames for data sent by jsonWebSocket

commitc47eb4f2db58b9c5a8fba00038b3646f77780766 authorRyan Trinkle <ryan.trinkle@gmail.com> dateTue 10 Jul 2018, 18:38 (8 years ago) parentc800f5b57f16b1
1 file changed+2−1
reflex-dom-core/src/Reflex/Dom/WebSocket.hs+2−1
reflex-dom-core/src/Reflex/Dom/WebSocket.hs+2−1
@@ -46,6 +46,7 @@ import Control.Monad.IO.Class
4646import Control.Monad.State
4747import Data.Aeson
4848import Data.ByteString (ByteString)
49+import Data.ByteString.Lazy (toStrict)
4950import Data.Default
5051import Data.IORef
5152import Data.JSString.Text
@@ -137,7 +138,7 @@ textWebSocket url cfg = webSocket' url cfg (either (return . decodeUtf8) fromJSV
137138
138139jsonWebSocket :: (ToJSON a, FromJSON b, MonadJSM m, MonadJSM (Performable m), HasJSContext m, PostBuild t m, TriggerEvent t m, PerformEvent t m, MonadHold t m, Reflex t) => Text -> WebSocketConfig t a -> m (RawWebSocket t (Maybe b))
139140jsonWebSocket url cfg = do
140− ws <- textWebSocket url $ cfg { _webSocketConfig_send = fmap encode <$> _webSocketConfig_send cfg }
141+ ws <- textWebSocket url $ cfg { _webSocketConfig_send = fmap (decodeUtf8 . toStrict . encode) <$> _webSocketConfig_send cfg }
141142 return ws { _webSocket_recv = jsonDecode . textToJSString <$> _webSocket_recv ws }
142143
143144#ifdef USE_TEMPLATE_HASKELL