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)"

View file

@ -29,6 +29,10 @@ dependencies:
- websockets
- bytestring
- containers
- wai
- wai-websockets
- http-types
- warp
library:
source-dirs: src

View file

@ -35,16 +35,21 @@ library
, base >=4.7 && <5
, bytestring
, containers
, http-types
, text
, tickLeiste
, tickLeiste-aeson
, uuid
, wai
, wai-websockets
, warp
, websockets
default-language: Haskell2010
executable tickLeisteServer
main-is: Main.hs
other-modules:
WaiApp
WebSocketApp
Paths_tickLeisteServer
hs-source-dirs:
@ -55,11 +60,15 @@ executable tickLeisteServer
, base >=4.7 && <5
, bytestring
, containers
, http-types
, text
, tickLeiste
, tickLeiste-aeson
, tickLeisteServer
, uuid
, wai
, wai-websockets
, warp
, websockets
default-language: Haskell2010
@ -76,10 +85,14 @@ test-suite tickLeisteServer-test
, base >=4.7 && <5
, bytestring
, containers
, http-types
, text
, tickLeiste
, tickLeiste-aeson
, tickLeisteServer
, uuid
, wai
, wai-websockets
, warp
, websockets
default-language: Haskell2010