| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Yesod.WebSockets
- type WebSocketsT = ReaderT Connection
- webSockets :: (MonadBaseControl IO m, MonadHandler m) => WebSocketsT m () -> m ()
- webSocketsWith :: (MonadBaseControl IO m, MonadHandler m) => (RequestHead -> m (Maybe AcceptRequest)) -> WebSocketsT m () -> m ()
- webSocketsOptions :: (MonadBaseControl IO m, MonadHandler m) => ConnectionOptions -> WebSocketsT m () -> m ()
- webSocketsOptionsWith :: (MonadBaseControl IO m, MonadHandler m) => ConnectionOptions -> (RequestHead -> m (Maybe AcceptRequest)) -> WebSocketsT m () -> m ()
- receiveData :: (MonadIO m, WebSocketsData a) => WebSocketsT m a
- receiveDataE :: (MonadIO m, WebSocketsData a) => WebSocketsT m (Either SomeException a)
- receiveDataMessageE :: MonadIO m => WebSocketsT m (Either SomeException DataMessage)
- sendPing :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m ()
- sendPingE :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m (Either SomeException ())
- sendClose :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m ()
- sendCloseE :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m (Either SomeException ())
- sendTextData :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m ()
- sendTextDataE :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m (Either SomeException ())
- sendBinaryData :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m ()
- sendBinaryDataE :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m (Either SomeException ())
- sendDataMessageE :: MonadIO m => DataMessage -> WebSocketsT m (Either SomeException ())
- sourceWS :: (MonadIO m, WebSocketsData a) => Producer (WebSocketsT m) a
- sinkWSText :: (MonadIO m, WebSocketsData a) => Consumer a (WebSocketsT m) ()
- sinkWSBinary :: (MonadIO m, WebSocketsData a) => Consumer a (WebSocketsT m) ()
- race :: MonadBaseControl IO m => m a -> m b -> m (Either a b)
- race_ :: MonadBaseControl IO m => m a -> m b -> m ()
- concurrently :: MonadBaseControl IO m => m a -> m b -> m (a, b)
- concurrently_ :: MonadBaseControl IO m => m a -> m b -> m ()
- defaultConnectionOptions :: ConnectionOptions
- data ConnectionOptions :: * = ConnectionOptions {
- connectionOnPong :: ~(IO ())
Core API
type WebSocketsT = ReaderT Connection Source #
A transformer for a WebSockets handler.
Since 0.1.0
webSockets :: (MonadBaseControl IO m, MonadHandler m) => WebSocketsT m () -> m () Source #
Attempt to run a WebSockets handler. This function first checks if the client initiated a WebSockets connection and, if so, runs the provided application, short-circuiting the rest of your handler. If the client did not request a WebSockets connection, the rest of your handler will be called instead.
Since 0.1.0
Arguments
| :: (MonadBaseControl IO m, MonadHandler m) | |
| => (RequestHead -> m (Maybe AcceptRequest)) | A Nothing indicates that the websocket upgrade request should not happen
and instead the rest of the handler will be called instead. This allows
you to use |
| -> WebSocketsT m () | |
| -> m () |
Varient of webSockets which allows you to specify the AcceptRequest
setttings when upgrading to a websocket connection.
Since 0.2.4
webSocketsOptions :: (MonadBaseControl IO m, MonadHandler m) => ConnectionOptions -> WebSocketsT m () -> m () Source #
Varient of webSockets which allows you to specify
the WS.ConnectionOptions setttings when upgrading to a websocket connection.
Since 0.2.5
webSocketsOptionsWith Source #
Arguments
| :: (MonadBaseControl IO m, MonadHandler m) | |
| => ConnectionOptions | Custom websockets options |
| -> (RequestHead -> m (Maybe AcceptRequest)) | A Nothing indicates that the websocket upgrade request should not happen
and instead the rest of the handler will be called instead. This allows
you to use |
| -> WebSocketsT m () | |
| -> m () |
Varient of webSockets which allows you to specify both
the WS.ConnectionOptions and the AcceptRequest
setttings when upgrading to a websocket connection.
Since 0.2.5
receiveData :: (MonadIO m, WebSocketsData a) => WebSocketsT m a Source #
Receive a piece of data from the client.
Since 0.1.0
receiveDataE :: (MonadIO m, WebSocketsData a) => WebSocketsT m (Either SomeException a) Source #
Receive a piece of data from the client. Capture SomeException as the result or operation Since 0.2.2
receiveDataMessageE :: MonadIO m => WebSocketsT m (Either SomeException DataMessage) Source #
Receive an application message. Capture SomeException as the result or operation Since 0.2.3
sendPing :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m () Source #
Send a ping message to the client.
Since 0.2.2
sendPingE :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m (Either SomeException ()) Source #
Send a ping message to the client. Capture SomeException as the result of operation Since 0.2.2
sendClose :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m () Source #
Send a close request to the client.
Since 0.2.2
sendCloseE :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m (Either SomeException ()) Source #
Send a close request to the client. Capture SomeException as the result of operation Since 0.2.2
sendTextData :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m () Source #
Send a textual message to the client.
Since 0.1.0
sendTextDataE :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m (Either SomeException ()) Source #
Send a textual message to the client. Capture SomeException as the result or operation and can be used like `either handle_exception return =<< sendTextDataE (Welcome :: Text)` Since 0.2.2
sendBinaryData :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m () Source #
Send a binary message to the client.
Since 0.1.0
sendBinaryDataE :: (MonadIO m, WebSocketsData a) => a -> WebSocketsT m (Either SomeException ()) Source #
Send a binary message to the client. Capture SomeException as the result of operation Since 0.2.2
sendDataMessageE :: MonadIO m => DataMessage -> WebSocketsT m (Either SomeException ()) Source #
Send a DataMessage to the client. Capture SomeException as the result of operation Since 0.2.3
Conduit API
sourceWS :: (MonadIO m, WebSocketsData a) => Producer (WebSocketsT m) a Source #
A Source of WebSockets data from the user.
Since 0.1.0
sinkWSText :: (MonadIO m, WebSocketsData a) => Consumer a (WebSocketsT m) () Source #
A Sink for sending textual data to the user.
Since 0.1.0
sinkWSBinary :: (MonadIO m, WebSocketsData a) => Consumer a (WebSocketsT m) () Source #
A Sink for sending binary data to the user.
Since 0.1.0
Async helpers
race :: MonadBaseControl IO m => m a -> m b -> m (Either a b) Source #
Generalized version of race.
Since 0.1.0
race_ :: MonadBaseControl IO m => m a -> m b -> m () Source #
Generalized version of race_.
Since 0.1.0
concurrently :: MonadBaseControl IO m => m a -> m b -> m (a, b) Source #
Generalized version of concurrently. Note that if your underlying
monad has some kind of mutable state, the state from the second action will
overwrite the state from the first.
Since 0.1.0
concurrently_ :: MonadBaseControl IO m => m a -> m b -> m () Source #
Run two actions concurrently (like concurrently), but discard their
results and any modified monadic state.
Since 0.1.0
Re-exports from websockets
data ConnectionOptions :: * #
Set options for a Connection.
Constructors
| ConnectionOptions | |
Fields
| |