websockets-simple-0.0.4.1: Simpler interface to the websockets api

Safe HaskellNone
LanguageHaskell2010

Network.WebSockets.Simple

Synopsis

Documentation

data WebSocketsAppParams send m Source

Constructors

WebSocketsAppParams 

Fields

send :: send -> m ()
 
close :: m ()
 

Instances

data WebSocketsApp send receive m Source

Constructors

WebSocketsApp 

Fields

onOpen :: WebSocketsAppParams send m -> m ()
 
onReceive :: WebSocketsAppParams send m -> receive -> m ()
 
onClose :: Maybe (Word16, ByteString) -> m (Int -> Maybe Int)

Either was a clean close, with CloseRequest params, or was unclean. Returns a function which defines the backoff strategy - takes in total time (microseconds) elapsed during connection closed, and may return a new delay before attempting to connect again; if none, then it won't try again.

Instances

Generic (WebSocketsApp send receive m) Source 
type Rep (WebSocketsApp send receive m) Source 

hoistWebSocketsApp :: (forall a. m a -> n a) -> (forall a. n a -> m a) -> WebSocketsApp send receive m -> WebSocketsApp send receive n Source

toClientAppT :: forall send receive m. (ToJSON send, FromJSON receive, MonadBaseControl IO m, MonadThrow m, MonadCatch m) => WebSocketsApp send receive m -> ClientAppT m (Maybe WebSocketsAppThreads) Source

This can throw a WebSocketSimpleError when json parsing fails. However, do note: the onOpen is called once, but is still forked when called. Likewise, the onReceive function is called every time a (parsable) response is received from the other party, and is forked on every invocation.

toClientAppT' :: (ToJSON send, FromJSON receive, MonadBaseControl IO m, MonadThrow m, MonadCatch m) => WebSocketsApp send receive m -> ClientAppT m () Source

toServerAppT :: (ToJSON send, FromJSON receive, MonadBaseControl IO m, MonadThrow m, MonadCatch m) => WebSocketsApp send receive m -> ServerAppT m Source

data WebSocketsAppThreads Source

Constructors

WebSocketsAppThreads 

Fields

onOpenThread :: Async ()
 
onReceiveThreads :: TChan (Async ())