MIT licensed
Maintained by Taylor Fausak
This version can be pinned in stack with:wuss-1.1.15@sha256:3d150318ca03271ffafec6917b9c29b40c43c354797e452e02e427a9be578b86,1553

Module documentation for 1.1.15

Used by 1 package in lts-14.27(full list with versions):

Wuss

Secure WebSocket (WSS) clients in Haskell.

Version badge Build badge


Wuss is a library that lets you easily create secure WebSocket clients over the WSS protocol. It is a small addition to the websockets package and is adapted from existing solutions by @jaspervdj, @mpickering, and @elfenlaid.

Installation

To add Wuss as a dependency to your package, add it to your Cabal file.

build-depends: wuss

For other use cases, install it with Cabal.

$ cabal install wuss

Wuss uses Semantic Versioning. See the change log for a detailed list of changes.

Usage

import Wuss

import Control.Concurrent (forkIO)
import Control.Monad (forever, unless, void)
import Data.Text (Text, pack)
import Network.WebSockets (ClientApp, receiveData, sendClose, sendTextData)

main :: IO ()
main = runSecureClient "echo.websocket.org" 443 "/" ws

ws :: ClientApp ()
ws connection = do
    putStrLn "Connected!"

    void . forkIO . forever $ do
        message <- receiveData connection
        print (message :: Text)

    let loop = do
            line <- getLine
            unless (null line) $ do
                sendTextData connection (pack line)
                loop
    loop

    sendClose connection (pack "Bye!")

For more information about Wuss, please read the Haddock documentation.

Changes

Change log

Wuss uses Semantic Versioning. The change log is available through the releases on GitHub.