@@ -38,7 +38,6 @@ import Network.Wai
38import Network.WebSockets
38import Network.WebSockets
39 (defaultConnectionOptions, ConnectionOptions(..), sendTextData,
39 (defaultConnectionOptions, ConnectionOptions(..), sendTextData,
40 receiveDataMessage, acceptRequest, ServerApp, sendPing)
40 receiveDataMessage, acceptRequest, ServerApp, sendPing)
41−import qualified Network.WebSockets as WS (DataMessage(..))
42import Network.Wai.Handler.WebSockets (websocketsOr)
41import Network.Wai.Handler.WebSockets (websocketsOr)
43import Network.HTTP.Types (Status(..))
42import Network.HTTP.Types (Status(..))
@@ -66,6 +65,8 @@ import Foreign.Store (newStore, readStore, lookupStore)
66import Language.Javascript.JSaddle (askJSM)
65import Language.Javascript.JSaddle (askJSM)
67import Control.Monad.IO.Class (MonadIO(..))
66import Control.Monad.IO.Class (MonadIO(..))
68+import Language.Javascript.JSaddle.WebSockets.Compat (getTextMessageByteString)
69jsaddleOr :: ConnectionOptions -> JSM () -> Application -> IO Application
70jsaddleOr :: ConnectionOptions -> JSM () -> Application -> IO Application
70jsaddleOr opts entryPoint otherApp = do
71jsaddleOr opts entryPoint otherApp = do
71 syncHandlers <- newIORef M.empty
72 syncHandlers <- newIORef M.empty
@@ -78,8 +79,8 @@ jsaddleOr opts entryPoint otherApp = do
78 liftIO $ sendTextData conn (encode syncKey)
79 liftIO $ sendTextData conn (encode syncKey)
79 entryPoint
80 entryPoint
80 _ <- forkIO . forever $
81 _ <- forkIO . forever $
81− receiveDataMessage conn >>= \case
82+ receiveDataMessage conn >>= \msg -> case getTextMessageByteString msg of
82− (WS.Text t) ->
83+ Just t ->
83 case decode t of
84 case decode t of
84 Nothing -> error $ "jsaddle Results decode failed : " <> show t
85 Nothing -> error $ "jsaddle Results decode failed : " <> show t
85 Just r -> processResult r
86 Just r -> processResult r