MIT licensed
Maintained by Taylor Fausak
This version can be pinned in stack with:wuss-2.0.1.7@sha256:ea7fb78c9339bb83de58fb6f1bdf9b98d704377a1c3a9b71df9ff5d32c3c074a,1513

Module documentation for 2.0.1.7

Used by 1 package in nightly-2024-03-14(full list with versions):

Wuss

Workflow 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.

Changes

Change log

Wuss follows the Package Versioning Policy. You can find release notes on GitHub.