echoClient :: WS.ClientApp ()
echoClient conn = do
    putStrLn "."
    -- Fork a thread that writes WS data to stdout
    a <- async $ forever $ do
        WS.sendTextData conn (encode [99::Int])
        msg <- WS.receiveData conn :: IO ByteString
        putStrLn ".1"
        WS.sendTextData conn msg
        putStrLn $ ".2:" <> show msg
    link a
echoClient :: WS.ClientApp ()
echoClient conn = do
    putStrLn "."
    -- Fork a thread that writes WS data to stdout
    a <- async $ forever $ do
        WS.sendTextData conn (encode [99::Int])
        msg <- WS.receiveData conn :: IO ByteString
        putStrLn ".1"
        WS.sendTextData conn msg
        putStrLn $ ".2:" <> show msg
    link a
echoClient conn = do
    putStrLn "."
    -- Fork a thread that writes WS data to stdout
    a <- async $ forever $ do
        WS.sendTextData conn (encode [99::Int])
        msg <- WS.receiveData conn :: IO ByteString
        putStrLn ".1"
        WS.sendTextData conn msg
        putStrLn $ ".2:" <> show msg
    link a