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

Safe HaskellNone
LanguageHaskell2010

Network.WebSockets.Simple

Synopsis

Documentation

data WebSocketsAppParams send m #

Constructors

WebSocketsAppParams 

Fields

Instances

Generic (WebSocketsAppParams send m) # 

Associated Types

type Rep (WebSocketsAppParams send m) :: * -> * #

Methods

from :: WebSocketsAppParams send m -> Rep (WebSocketsAppParams send m) x #

to :: Rep (WebSocketsAppParams send m) x -> WebSocketsAppParams send m #

type Rep (WebSocketsAppParams send m) # 
type Rep (WebSocketsAppParams send m) = D1 * (MetaData "WebSocketsAppParams" "Network.WebSockets.Simple" "websockets-simple-0.0.6.3-51jcskPuNjO1HcgHSsDf3i" False) (C1 * (MetaCons "WebSocketsAppParams" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "send") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (send -> m ()))) (S1 * (MetaSel (Just Symbol "close") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (m ())))))

data WebSocketsApp send receive m #

Constructors

WebSocketsApp 

Fields

Instances

Generic (WebSocketsApp send receive m) # 

Associated Types

type Rep (WebSocketsApp send receive m) :: * -> * #

Methods

from :: WebSocketsApp send receive m -> Rep (WebSocketsApp send receive m) x #

to :: Rep (WebSocketsApp send receive m) x -> WebSocketsApp send receive m #

type Rep (WebSocketsApp send receive m) # 
type Rep (WebSocketsApp send receive m) = D1 * (MetaData "WebSocketsApp" "Network.WebSockets.Simple" "websockets-simple-0.0.6.3-51jcskPuNjO1HcgHSsDf3i" False) (C1 * (MetaCons "WebSocketsApp" PrefixI True) ((:*:) * (S1 * (MetaSel (Just Symbol "onOpen") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (WebSocketsAppParams send m -> m ()))) ((:*:) * (S1 * (MetaSel (Just Symbol "onReceive") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (WebSocketsAppParams send m -> receive -> m ()))) (S1 * (MetaSel (Just Symbol "onClose") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 * (Maybe (Word16, ByteString) -> m ()))))))

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

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

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 () #

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

expBackoffStrategy #

Arguments

:: (MonadBaseControl IO m, MonadCatch m) 
=> m a

The run app

-> m a 

A simple backoff strategy, which (per second), will increasingly delay at 2^soFar, until soFar >= 5minutes, where it will then routinely poll every 5 minutes.