@@ -38,7 +38,6 @@ import Network.Wai
3838import Network.WebSockets
3939 (defaultConnectionOptions, ConnectionOptions(..), sendTextData,
4040 receiveDataMessage, acceptRequest, ServerApp, sendPing)
41−import qualified Network.WebSockets as WS (DataMessage(..))
4241import Network.Wai.Handler.WebSockets (websocketsOr)
4342
4443import Language.Javascript.JSaddle.Types (JSM(..), JSContextRef(..))
@@ -65,6 +64,8 @@ import Foreign.Store (newStore, readStore, lookupStore)
6564import Language.Javascript.JSaddle (askJSM)
6665import Control.Monad.IO.Class (MonadIO(..))
6766
67+import Language.Javascript.JSaddle.WebSockets.Compat (getTextMessageByteString)
68+
6869jsaddleOr :: ConnectionOptions -> JSM () -> Application -> IO Application
6970jsaddleOr opts entryPoint otherApp = do
7071 syncHandlers <- newIORef M.empty
@@ -77,8 +78,8 @@ jsaddleOr opts entryPoint otherApp = do
7778 liftIO $ sendTextData conn (encode syncKey)
7879 entryPoint
7980 _ <- forkIO . forever $
80− receiveDataMessage conn >>= \case
81− (WS.Text t) ->
81+ receiveDataMessage conn >>= \msg -> case getTextMessageByteString msg of
82+ Just t ->
8283 case decode t of
8384 Nothing -> error $ "jsaddle Results decode failed : " <> show t
8485 Just r -> processResult r