simplexmq-6.5.0.16: SimpleXMQ message broker
Safe HaskellSafe-Inferred
LanguageHaskell2010

Simplex.Messaging.Transport.Server

Synopsis

Documentation

data ServerCredentials Source #

Constructors

ServerCredentials 

Fields

Instances

Instances details
Show ServerCredentials Source # 
Instance details

Defined in Simplex.Messaging.Transport.Server

Methods

showsPrec :: Int -> ServerCredentials -> ShowS

show :: ServerCredentials -> String

showList :: [ServerCredentials] -> ShowS

data TLSServerCredential Source #

Constructors

TLSServerCredential 

Fields

type AddHTTP = Bool Source #

runTransportServerState :: Transport c => SocketState -> TMVar Bool -> ServiceName -> Supported -> Credential -> TransportServerConfig -> (c 'TServer -> IO ()) -> IO () Source #

runTransportServerState_ :: forall c. Transport c => SocketState -> TMVar Bool -> ServiceName -> Supported -> TLSServerCredential -> TransportServerConfig -> (Socket -> (SNICredentialUsed, c 'TServer) -> IO ()) -> IO () Source #

type SocketState = (TVar Int, TVar Int, TVar (IntMap (Weak ThreadId))) Source #

data SocketStats Source #

Constructors

SocketStats 

Fields

runTransportServer :: Transport c => TMVar Bool -> ServiceName -> Supported -> Credential -> TransportServerConfig -> (c 'TServer -> IO ()) -> IO () Source #

Run transport server (plain TCP or WebSockets) on passed TCP port and signal when server started and stopped via passed TMVar.

All accepted connections are passed to the passed function.

runTransportServerSocket :: Transport c => TMVar Bool -> IO Socket -> String -> ServerParams -> TransportServerConfig -> (c 'TServer -> IO ()) -> IO () Source #

Run a transport server with provided connection setup and handler.

runLocalTCPServer :: TMVar Bool -> ServiceName -> (Socket -> IO ()) -> IO () Source #

Run TCP server without TLS

startTCPServer :: TMVar Bool -> Maybe HostName -> ServiceName -> IO Socket Source #

loadFileFingerprint :: FilePath -> IO Fingerprint Source #

smpServerHandshake :: forall c. Transport c => CertificateChain -> APrivateSignKey -> c 'TServer -> KeyPairX25519 -> KeyHash -> VersionRangeSMP -> (SMPServiceRole -> CertificateChain -> Fingerprint -> ExceptT TransportError IO ServiceId) -> ExceptT TransportError IO (THandleSMP c 'TServer) Source #