Safe Haskell | None |
---|---|
Language | Haskell98 |
- 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
:: (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 #
:: (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
.
ConnectionOptions | |
|