wuss

Secure WebSocket (WSS) clients

Version on this page:1.1.19
LTS Haskell 20.2:2.0.0.2
Stackage Nightly 2022-11-28:2.0.0.2
Latest on Hackage:2.0.0.2

See all snapshots wuss appears in

MIT licensed
Maintained by Taylor Fausak
This version can be pinned in stack with:wuss-1.1.19@sha256:346a96ade9cff7223362f882520eb38d35abda2b17e007c0849e29bf925d8eac,1260

Module documentation for 1.1.19

Wuss

CI Hackage Stackage

Secure WebSocket (WSS) clients in Haskell.


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.