@@ -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)
4342import Network.HTTP.Types (Status(..))
4443
@@ -66,6 +65,8 @@ import Foreign.Store (newStore, readStore, lookupStore)
6665import Language.Javascript.JSaddle (askJSM)
6766import Control.Monad.IO.Class (MonadIO(..))
6867
68+import Language.Javascript.JSaddle.WebSockets.Compat (getTextMessageByteString)
69+
6970jsaddleOr :: ConnectionOptions -> JSM () -> Application -> IO Application
7071jsaddleOr opts entryPoint otherApp = do
7172 syncHandlers <- newIORef M.empty
@@ -78,8 +79,8 @@ jsaddleOr opts entryPoint otherApp = do
7879 liftIO $ sendTextData conn (encode syncKey)
7980 entryPoint
8081 _ <- forkIO . forever $
81− receiveDataMessage conn >>= \case
82− (WS.Text t) ->
82+ receiveDataMessage conn >>= \msg -> case getTextMessageByteString msg of
83+ Just t ->
8384 case decode t of
8485 Nothing -> error $ "jsaddle Results decode failed : " <> show t
8586 Just r -> processResult r