packages feed

wai-websockets 1.0.0 → 1.1.0

raw patch · 2 files changed

+12/−11 lines, 2 filesdep ~conduitdep ~waidep ~warp

Dependency ranges changed: conduit, wai, warp

Files

Network/Wai/Handler/WebSockets.hs view
@@ -7,19 +7,19 @@ import Control.Monad.IO.Class (liftIO) import Data.ByteString (ByteString) import Data.Char (toLower)-import Network.Socket (Socket) import Network.Wai (Request, requestHeaders, rawPathInfo, requestHeaders) import qualified Data.ByteString.Char8 as S import qualified Data.Conduit as C import qualified Data.Enumerator as E+import qualified Data.Enumerator.List as EL import qualified Network.WebSockets as WS-import qualified Network.WebSockets.Internal as WS+import Network.Wai.Handler.Warp (Connection (..))  -- | For use with 'settingsIntercept' from the Warp web server. intercept :: WS.Protocol p           => (WS.Request -> WS.WebSockets p ())           -> Request-          -> Maybe (C.BufferedSource IO ByteString -> Socket -> C.ResourceT IO ())+          -> Maybe (C.BufferedSource IO ByteString -> Connection -> C.ResourceT IO ()) intercept = interceptWith WS.defaultWebSocketsOptions  -- | Variation of 'intercept' which allows custom options.@@ -27,7 +27,7 @@               => WS.WebSocketsOptions               -> (WS.Request -> WS.WebSockets p ())               -> Request-              -> Maybe (C.BufferedSource IO ByteString -> Socket -> C.ResourceT IO ())+              -> Maybe (C.BufferedSource IO ByteString -> Connection -> C.ResourceT IO ()) interceptWith opts app req = case lookup "upgrade" $ requestHeaders req of     Just s         | S.map toLower s == "websocket" -> Just $ runWebSockets opts req' app@@ -42,15 +42,15 @@               -> WS.RequestHttpPart               -> (WS.Request -> WS.WebSockets p ())               -> C.BufferedSource IO ByteString-              -> Socket+              -> Connection               -> C.ResourceT IO ()-runWebSockets opts req app source sock = do+runWebSockets opts req app source conn = do     step <- liftIO $ E.runIteratee $ WS.runWebSocketsWith opts req app send     source C.$$ C.sinkState (E.returnI step) push close   where-    send  = WS.iterSocket sock+    send  = EL.mapM_ (connSendAll conn)     close = const $ return ()      push iter bs = do         step <- liftIO $ E.runIteratee $ E.enumList 1 [bs] E.$$ iter-        return (E.returnI step, C.Processing)+        return $ C.StateProcessing $ E.returnI step
wai-websockets.cabal view
@@ -1,5 +1,5 @@ Name:                wai-websockets-Version:             1.0.0+Version:             1.1.0 Synopsis:            Provide a bridge betweeen WAI and the websockets package. License:             BSD3 License-file:        LICENSE@@ -19,8 +19,9 @@ Library   Build-Depends:     base                          >= 3        && < 5                    , bytestring                >= 0.9.1.4  && < 0.10-                   , conduit-                   , wai                           >= 1.0      && < 1.1+                   , conduit                   >= 0.2+                   , wai                           >= 1.1      && < 1.2+                   , warp                          >= 1.1      && < 1.2                    , enumerator                >= 0.4.8    && < 0.5                    , network-enumerator            >= 0.1.2    && < 0.2                    , blaze-builder                 >= 0.2.1.4  && < 0.4