network-protocol-xmpp-0.3.2.1: Client <-> Server communication over XMPPSource codeContentsIndex
Network.Protocol.XMPP
Contents
JIDs
Stanzas
The XMPP monad
Resuming sessions
Synopsis
data JID = JID {
jidNode :: Maybe Node
jidDomain :: Domain
jidResource :: Maybe Resource
}
data Node
data Domain
data Resource
strNode :: Node -> Text
strDomain :: Domain -> Text
strResource :: Resource -> Text
parseJID :: Text -> Maybe JID
formatJID :: JID -> Text
class Stanza a where
stanzaTo :: a -> Maybe JID
stanzaFrom :: a -> Maybe JID
stanzaID :: a -> Maybe Text
stanzaLang :: a -> Maybe Text
stanzaPayloads :: a -> [Element]
data ReceivedStanza
= ReceivedMessage Message
| ReceivedPresence Presence
| ReceivedIQ IQ
data Message = Message {
messageType :: MessageType
messageTo :: Maybe JID
messageFrom :: Maybe JID
messageID :: Maybe Text
messageLang :: Maybe Text
messagePayloads :: [Element]
}
data Presence = Presence {
presenceType :: PresenceType
presenceTo :: Maybe JID
presenceFrom :: Maybe JID
presenceID :: Maybe Text
presenceLang :: Maybe Text
presencePayloads :: [Element]
}
data IQ = IQ {
iqType :: IQType
iqTo :: Maybe JID
iqFrom :: Maybe JID
iqID :: Maybe Text
iqLang :: Maybe Text
iqPayload :: Maybe Element
}
data MessageType
= MessageNormal
| MessageChat
| MessageGroupChat
| MessageHeadline
| MessageError
data PresenceType
= PresenceAvailable
| PresenceUnavailable
| PresenceSubscribe
| PresenceSubscribed
| PresenceUnsubscribe
| PresenceUnsubscribed
| PresenceProbe
| PresenceError
data IQType
= IQGet
| IQSet
| IQResult
| IQError
emptyMessage :: MessageType -> Message
emptyPresence :: PresenceType -> Presence
emptyIQ :: IQType -> IQ
data XMPP a
data Server = Server {
serverJID :: JID
serverHostname :: HostName
serverPort :: PortID
}
data Error
= AuthenticationFailure
| AuthenticationError Text
| InvalidStanza Element
| InvalidBindResult ReceivedStanza
| TransportError Text
| NoComponentStreamID
runClient :: Server -> JID -> Text -> Text -> XMPP a -> IO (Either Error a)
runComponent :: Server -> Text -> XMPP a -> IO (Either Error a)
putStanza :: Stanza a => a -> XMPP ()
getStanza :: XMPP ReceivedStanza
bindJID :: JID -> XMPP JID
data Session
getSession :: XMPP Session
runXMPP :: Session -> XMPP a -> IO (Either Error a)
JIDs
data JID Source
Constructors
JID
jidNode :: Maybe Node
jidDomain :: Domain
jidResource :: Maybe Resource
show/hide Instances
data Node Source
show/hide Instances
data Domain Source
show/hide Instances
data Resource Source
show/hide Instances
strNode :: Node -> TextSource
strDomain :: Domain -> TextSource
strResource :: Resource -> TextSource
parseJID :: Text -> Maybe JIDSource
formatJID :: JID -> TextSource
Stanzas
class Stanza a whereSource
Methods
stanzaTo :: a -> Maybe JIDSource
stanzaFrom :: a -> Maybe JIDSource
stanzaID :: a -> Maybe TextSource
stanzaLang :: a -> Maybe TextSource
stanzaPayloads :: a -> [Element]Source
show/hide Instances
data ReceivedStanza Source
Constructors
ReceivedMessage Message
ReceivedPresence Presence
ReceivedIQ IQ
show/hide Instances
data Message Source
Constructors
Message
messageType :: MessageType
messageTo :: Maybe JID
messageFrom :: Maybe JID
messageID :: Maybe Text
messageLang :: Maybe Text
messagePayloads :: [Element]
show/hide Instances
data Presence Source
Constructors
Presence
presenceType :: PresenceType
presenceTo :: Maybe JID
presenceFrom :: Maybe JID
presenceID :: Maybe Text
presenceLang :: Maybe Text
presencePayloads :: [Element]
show/hide Instances
data IQ Source
Constructors
IQ
iqType :: IQType
iqTo :: Maybe JID
iqFrom :: Maybe JID
iqID :: Maybe Text
iqLang :: Maybe Text
iqPayload :: Maybe Element
show/hide Instances
data MessageType Source
Constructors
MessageNormal
MessageChat
MessageGroupChat
MessageHeadline
MessageError
show/hide Instances
data PresenceType Source
Constructors
PresenceAvailable
PresenceUnavailable
PresenceSubscribe
PresenceSubscribed
PresenceUnsubscribe
PresenceUnsubscribed
PresenceProbe
PresenceError
show/hide Instances
data IQType Source
Constructors
IQGet
IQSet
IQResult
IQError
show/hide Instances
emptyMessage :: MessageType -> MessageSource
emptyPresence :: PresenceType -> PresenceSource
emptyIQ :: IQType -> IQSource
The XMPP monad
data XMPP a Source
show/hide Instances
data Server Source
Constructors
Server
serverJID :: JID
serverHostname :: HostName
serverPort :: PortID
data Error Source
Constructors
AuthenticationFailureThe remote host refused the specified authentication credentials.
AuthenticationError TextThere was an error while authenticating with the remote host.
InvalidStanza ElementAn unrecognized or malformed Stanza was received from the remote host.
InvalidBindResult ReceivedStanzaThe remote host sent an invalid reply to a resource bind request.
TransportError TextThere was an error with the underlying transport.
NoComponentStreamIDThe remote host did not send a stream ID when accepting a component connection.
show/hide Instances
runClientSource
:: Server
-> JIDClient JID
-> TextUsername
-> TextPassword
-> XMPP a
-> IO (Either Error a)
runComponentSource
:: Server
-> TextServer secret
-> XMPP a
-> IO (Either Error a)
putStanza :: Stanza a => a -> XMPP ()Source
getStanza :: XMPP ReceivedStanzaSource
bindJID :: JID -> XMPP JIDSource

Send a <bind> message for the given JID, returning the server's reply. In most cases the reply will be the same as the input. However, if the input has no Resource, the returned JID will contain a generated Resource.

Clients must bind a JID before sending any Stanzas.

Resuming sessions
data Session Source
getSession :: XMPP SessionSource
runXMPP :: Session -> XMPP a -> IO (Either Error a)Source
Produced by Haddock version 2.6.1