diff options
Diffstat (limited to 'Server.hs')
-rw-r--r-- | Server.hs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/Server.hs b/Server.hs new file mode 100644 index 0000000..5d919b8 --- /dev/null +++ b/Server.hs @@ -0,0 +1,26 @@ +{-# 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) |