46 lines
1.8 KiB
Haskell
46 lines
1.8 KiB
Haskell
{-# LANGUAGE OverloadedStrings #-}
|
|
|
|
module Main where
|
|
|
|
import qualified Network.WebSockets as WS
|
|
|
|
import Forest.Server
|
|
import Forest.Node
|
|
import Forest.TreeModule.ConstModule
|
|
import Forest.TreeModule.AnimateModule
|
|
import Forest.TreeModule.ForkModule
|
|
|
|
pingDelay :: Int
|
|
pingDelay = 10
|
|
|
|
pongDelay :: Int
|
|
pongDelay = 3 * pingDelay
|
|
|
|
options :: WS.ServerOptions
|
|
options = WS.defaultServerOptions
|
|
{ WS.serverRequirePong = Just pongDelay
|
|
}
|
|
|
|
main :: IO ()
|
|
main = do
|
|
putStrLn "Starting server"
|
|
WS.runServerWithOptions options $ serverApp pingDelay $ forkModule "Forest"
|
|
[ ProngConstructor $ constModule $ newNode "" "Test" [txtNode "" "Bla"]
|
|
, ProngConstructor $ animateModule 200000
|
|
[ newNode "" "Animate" [txtNode "" "|> |", txtNode "" "Ping!"]
|
|
, newNode "" "Animate" [txtNode "" "|-> |", txtNode "" "Ping!"]
|
|
, newNode "" "Animate" [txtNode "" "| -> |", txtNode "" "Ping!"]
|
|
, newNode "" "Animate" [txtNode "" "| -> |", txtNode "" "Ping!"]
|
|
, newNode "" "Animate" [txtNode "" "| ->|", txtNode "" "Ping!"]
|
|
, newNode "" "Animate" [txtNode "" "| -|", txtNode "" "Ping!"]
|
|
, newNode "" "Animate" [txtNode "" "| |", txtNode "" "Ping!"]
|
|
, newNode "" "Animate" [txtNode "" "| <|", txtNode "" "Pong!"]
|
|
, newNode "" "Animate" [txtNode "" "| <-|", txtNode "" "Pong!"]
|
|
, newNode "" "Animate" [txtNode "" "| <- |", txtNode "" "Pong!"]
|
|
, newNode "" "Animate" [txtNode "" "| <- |", txtNode "" "Pong!"]
|
|
, newNode "" "Animate" [txtNode "" "|<- |", txtNode "" "Pong!"]
|
|
, newNode "" "Animate" [txtNode "" "|- |", txtNode "" "Pong!"]
|
|
, newNode "" "Animate" [txtNode "" "| |", txtNode "" "Pong!"]
|
|
]
|
|
, ProngConstructor $ constModule projectDescriptionNode
|
|
]
|