diff options
Diffstat (limited to 'server/lib')
-rw-r--r-- | server/lib/Cafp/Main/GenerateElmTypes.hs | 9 | ||||
-rw-r--r-- | server/lib/Cafp/Main/Server.hs | 5 | ||||
-rw-r--r-- | server/lib/Cafp/Messages.hs | 6 |
3 files changed, 12 insertions, 8 deletions
diff --git a/server/lib/Cafp/Main/GenerateElmTypes.hs b/server/lib/Cafp/Main/GenerateElmTypes.hs index 0bd43c1..8d2c9c1 100644 --- a/server/lib/Cafp/Main/GenerateElmTypes.hs +++ b/server/lib/Cafp/Main/GenerateElmTypes.hs @@ -4,12 +4,9 @@ module Cafp.Main.GenerateElmTypes ( main ) where -import Cafp.Messages -import Elm.Derive -import Elm.Module -import Data.Proxy - -deriveBoth defaultOptions ''ServerMessage +import Cafp.Messages +import Data.Proxy +import Elm.Module main :: IO () main = putStrLn $ makeElmModule "Messages" diff --git a/server/lib/Cafp/Main/Server.hs b/server/lib/Cafp/Main/Server.hs index 6451e17..4b59135 100644 --- a/server/lib/Cafp/Main/Server.hs +++ b/server/lib/Cafp/Main/Server.hs @@ -7,6 +7,7 @@ import Cafp.Messages import Control.Concurrent (threadDelay) import Control.Concurrent.STM (STM, TVar, newTVar) import Control.Monad (forever, when) +import qualified Data.Aeson as Aeson import qualified Data.HashMap.Strict as HMS import Data.Text (Text) import qualified Data.Text as T @@ -53,9 +54,9 @@ wsApp pc = case routePendingConnection pc of Just roomId -> do conn <- WS.acceptRequest pc WS.forkPingThread conn 30 - WS.sendTextData conn $ "Welcome to room " <> roomId + WS.sendTextData conn $ Aeson.encode Welcome forever $ do - WS.sendTextData conn $ ("loop data" :: Text) + WS.sendTextData conn $ Aeson.encode Bye threadDelay $ 1 * 1000000 main :: IO () diff --git a/server/lib/Cafp/Messages.hs b/server/lib/Cafp/Messages.hs index e3c28fe..bde199d 100644 --- a/server/lib/Cafp/Messages.hs +++ b/server/lib/Cafp/Messages.hs @@ -1,7 +1,13 @@ +{-# LANGUAGE TemplateHaskell #-} module Cafp.Messages ( ServerMessage (..) ) where +import Elm.Derive + data ServerMessage = Welcome + | Bye deriving (Show) + +deriveBoth defaultOptions ''ServerMessage |