wuss

Secure WebSocket (WSS) clients

Version on this page:1.1.17
LTS Haskell 22.14:2.0.1.7
Stackage Nightly 2024-03-28:2.0.1.7
Latest on Hackage:2.0.1.7

See all snapshots wuss appears in

MIT licensed
Maintained by Taylor Fausak
This version can be pinned in stack with:wuss-1.1.17@sha256:c014f994ed7a49e9ae87084e785673a48db821b64db078f7f3fc151721b2367d,1492

Module documentation for 1.1.17

Used by 1 package in nightly-2021-01-05(full list with versions):

Wuss

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