module Network.WebSockets.Protocol
( Protocol (..)
, TextProtocol
, BinaryProtocol
, close
, ping
, pong
, textData
, binaryData
) where
import qualified Data.ByteString as B
import Network.WebSockets.Types
import Network.WebSockets.Handshake.Http
import qualified Network.WebSockets.Protocol.Unsafe as Unsafe
class Protocol p where
version :: p -> String
headerVersion :: p -> B.ByteString
encodeFrame :: p -> Encoder p Frame
decodeFrame :: p -> Decoder p Frame
finishRequest :: p -> RequestHttpPart
-> Decoder p (Either HandshakeError Request)
implementations :: [p]
class Protocol p => TextProtocol p
class TextProtocol p => BinaryProtocol p
close :: (TextProtocol p, WebSocketsData a) => a -> Message p
close = Unsafe.close
ping :: (BinaryProtocol p, WebSocketsData a) => a -> Message p
ping = Unsafe.ping
pong :: (BinaryProtocol p, WebSocketsData a) => a -> Message p
pong = Unsafe.pong
textData :: (TextProtocol p, WebSocketsData a) => a -> Message p
textData = Unsafe.textData
binaryData :: (BinaryProtocol p, WebSocketsData a) => a -> Message p
binaryData = Unsafe.binaryData