From 360d8ac4601dc5b48c22eeb93eb1853cee99e6c9 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 21 Apr 2017 13:25:51 -0400 Subject: http server scaffolding --- Server.hs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 Server.hs (limited to 'Server.hs') 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) -- cgit v1.2.3