packages feed

network-messagepack-rpc-websocket 0.1.1.0 → 0.1.1.1

raw patch · 4 files changed

+35/−31 lines, 4 filesdep ~wss-clientsetup-changednew-uploader

Dependency ranges changed: wss-client

Files

− Setup.hs
@@ -1,2 +0,0 @@-import Distribution.Simple-main = defaultMain
network-messagepack-rpc-websocket.cabal view
@@ -1,5 +1,5 @@ name:                network-messagepack-rpc-websocket-version:             0.1.1.0+version:             0.1.1.1 synopsis:            WebSocket backend for MessagePack RPC description:         WebSocket backend for "network-messagepack-rpc" homepage:            https://github.com/iij-ii/direct-hs/tree/master/network-messagepack-rpc-websocket@@ -39,7 +39,7 @@     , network-messagepack-rpc-websocket     , skews     , text-    , wss-client+    , wss-client >= 0.3   ghc-options:         -threaded -rtsopts -with-rtsopts=-N   default-language:    Haskell2010 
src/Network/MessagePack/RPC/Client/WebSocket.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE PackageImports    #-}  -- | MessagePack RPC Client based on WebSocket. module Network.MessagePack.RPC.Client.WebSocket@@ -24,11 +25,11 @@     ) where -import qualified Data.Text                      as T-import qualified Network.WebSockets.Client      as Ws+import qualified Data.Text                              as T+import qualified "wss-client" Network.WebSockets.Client as Ws -import           Network.MessagePack.RPC.Client hiding (withClient)-import qualified Network.MessagePack.RPC.Client as RPC (withClient)+import           Network.MessagePack.RPC.Client         hiding (withClient)+import qualified Network.MessagePack.RPC.Client         as RPC (withClient)  -- | URL for websocket end points. type URL = String@@ -39,9 +40,9 @@     -> Config -- ^ Configuration     -> (Client -> IO a) -- ^ Action     -> IO a-withClient url config action = Ws.withConnection url $ \conn -> do-    Ws.forkPingThread conn 30-    let backend = Backend (Ws.sendBinaryData conn)-                          (Ws.receiveData conn)-                          (Ws.sendClose conn ("Bye!" :: T.Text))-    RPC.withClient config backend action+withClient url config action = Ws.withConnection url $ \conn ->+    Ws.withPingThread conn 30 (return ()) $ do+        let backend = Backend (Ws.sendBinaryData conn)+                              (Ws.receiveData conn)+                              (Ws.sendClose conn ("Bye!" :: T.Text))+        RPC.withClient config backend action
test/Network/MessagePack/RPC/Client/WebSocketSpec.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# LANGUAGE OverloadedStrings #-}  module Network.MessagePack.RPC.Client.WebSocketSpec@@ -5,22 +6,22 @@   , spec   ) where -import           Control.Applicative                        (empty, (<|>))-import           Control.Concurrent                         (threadDelay)-import           Control.Concurrent.Async                   (async,-                                                             forConcurrently,-                                                             wait)-import           Data.ByteString.Char8                      ()-import qualified Data.MessagePack                           as MsgPack-import qualified Data.Text                                  ()-import qualified Network.WebSockets.Skews                   as Skews-import           System.Envy                                (FromEnv, decodeEnv,-                                                             env, fromEnv)+import           Control.Applicative                      (empty, (<|>))+import           Control.Concurrent                       (threadDelay)+import           Control.Concurrent.Async                 (async,+                                                           forConcurrently,+                                                           wait)+import           Data.ByteString.Char8                    ()+import qualified Data.MessagePack                         as MsgPack+import qualified Data.Text                                ()+import qualified Network.WebSockets.Skews                 as Skews+import           System.Envy                              (FromEnv, decodeEnv,+                                                           env, fromEnv) import           Test.Hspec-import           Text.Read                                  (readMaybe)+import           Text.Read                                (readMaybe) -import qualified Data.MessagePack.RPC                       as Rpc-import qualified Network.MessagePack.RPC.Client.WebSocket   as Rpc+import qualified Data.MessagePack.RPC                     as Rpc+import qualified Network.MessagePack.RPC.Client.WebSocket as Rpc   -- `main` is here so that this module can be run from GHCi on its own.  It is@@ -32,14 +33,18 @@ newtype PortNumber = PortNumber Int deriving (Eq, Show)  instance FromEnv PortNumber where-    fromEnv = do-        mpn <- (readMaybe <$> env "WSS_CLIENT_TEST_SERVER_PORT") <|> pure (Just 8614)+#if MIN_VERSION_envy(2, 0, 0)+  fromEnv _ = do+#else+  fromEnv = do+#endif+        mpn <- (readMaybe <$> env "MESSAGE_PACK_RPC_TEST_SERVER_PORT") <|> pure (Just 8615)         PortNumber <$> maybe empty pure mpn   spec :: Spec spec = describe "call" $ do-    Right (PortNumber pn) <- runIO decodeEnv+    PortNumber pn <- runIO $ either fail return =<< decodeEnv      let host = "localhost"     server <- runIO $ Skews.start $ Skews.Args host pn