{-# LANGUAGE OverloadedStrings #-} module Server where import CmdLine import Network.Wai import Network.Wai.Handler.Warp import Network.Wai.Handler.WebSockets import qualified Network.WebSockets as WS import Network.HTTP.Types import Data.Text (Text) server :: ServerOpts -> IO () server o = run (serverPort o) app app :: Application app = websocketsOr WS.defaultConnectionOptions websocketApp webapp where webapp _ respond = respond $ responseLBS status400 [] "Not a WebSocket request" websocketApp :: WS.ServerApp websocketApp pending_conn = do conn <- WS.acceptRequest pending_conn WS.sendTextData conn ("Hello, client!" :: Text)