| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Servant.API.WebSocketConduit
Synopsis
- data WebSocketConduit i o
Documentation
data WebSocketConduit i o #
Endpoint for defining a route to provide a websocket. In contrast
to the WebSocket endpoint, WebSocketConduit provides a
higher-level interface. The handler function must be of type
Conduit i m o with i and o being instances of FromJSON and
ToJSON respectively. await reads from the web socket while
yield writes to it.
Example:
import Data.Aeson (Value) import qualified Data.Conduit.List as CL type WebSocketApi = "echo" :> WebSocketConduit Value Value server :: Server WebSocketApi server = echo where echo :: Monad m => Conduit Value m Value echo = CL.map id
Note that the input format on the web socket is JSON, hence this example only echos valid JSON data.
Instances
| (FromJSON i, ToJSON o) => HasServer (WebSocketConduit i o :: *) ctx # | |
Defined in Servant.API.WebSocketConduit Associated Types type ServerT (WebSocketConduit i o) m :: * # Methods route :: Proxy (WebSocketConduit i o) -> Context ctx -> Delayed env (Server (WebSocketConduit i o)) -> Router env # hoistServerWithContext :: Proxy (WebSocketConduit i o) -> Proxy ctx -> (forall x. m x -> n x) -> ServerT (WebSocketConduit i o) m -> ServerT (WebSocketConduit i o) n # | |
| type ServerT (WebSocketConduit i o :: *) m # | |
Defined in Servant.API.WebSocketConduit | |