we have a running webserver (nothing tested)

This commit is contained in:
Dennis Frieberg 2020-09-22 16:24:39 +02:00
parent fecda5bd45
commit e4339fb38d
4 changed files with 47 additions and 2 deletions

View file

@ -1,6 +1,17 @@
module Main where
import Lib
-- TODO:
-- We need some logic to compile with different backends. Right now we only
-- support warp. But a (fast) cgi backend would be nice too.
-- TODO:
-- We need some way too configure things, like the port we run on.
-- see Network.Wai.Handler.Warp.Settings and Network.Wai.Handler.Warp.runSettings
import WaiApp
import Control.Concurrent.MVar
import Network.Wai.Handler.Warp
main :: IO ()
main = someFunc
main = do
serverState <- newMVar newServerState
run 8080 $ waiApplication serverState

17
app/WaiApp.hs Normal file
View file

@ -0,0 +1,17 @@
{-# LANGUAGE OverloadedStrings #-}
module WaiApp (waiApplication, WSA.newServerState, WSA.ServerState) where
import qualified WebSocketApp as WSA
import qualified Network.WebSockets as WS
import Network.Wai.Handler.WebSockets
import Network.Wai
import Network.HTTP.Types
import Control.Concurrent.MVar
waiApplication :: MVar WSA.ServerState -> Application
waiApplication serverState = websocketsOr WS.defaultConnectionOptions (WSA.application serverState) clientServer
-- this should serve the webclient see Network.Wai.responseFile
clientServer :: Application
clientServer _ respond = respond $ responseLBS status404 [] "No webclient implemented (Franzi essen ?? -- Emma)"