wuss

Secure WebSocket (WSS) clients

Version on this page:1.1.18
LTS Haskell 22.37:2.0.2.0
Stackage Nightly 2024-10-11:2.0.2.0
Latest on Hackage:2.0.2.0

See all snapshots wuss appears in

MIT licensed
Maintained by Taylor Fausak
This version can be pinned in stack with:wuss-1.1.18@sha256:3a44849ae19153cedeadda687274d0ad05934477500df1445c6e724e85f1d114,1260

Module documentation for 1.1.18

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.