module Ghci.Server( -- $docs -- * Starting the server start , startConfig -- * Sending messages , sendText , sendHtml , sendPlot -- * Configuration , Config , Verbosity(..) , defaultConfig , cfHTTPPort , cfVerbosity , cfWSPort ) where import Ghci.Server.Config (Config, Verbosity (..), cfHTTPPort, cfVerbosity, cfWSPort, defaultConfig) import qualified Ghci.Server.Http.Internal as HTTP import qualified Ghci.Server.Websockets.Internal as WS import Ghci.Server.Websockets.Message (sendHtml, sendPlot, sendText) -- $docs -- This modules implements a websocket server whose state survives GHCi -- reloads. To use it, run 'start' once per GHCi session, and then -- use 'sendText', 'sendHtml' and 'sendPlot' to show the -- values on all clients that are currently connected. -- | Start the websocket and HTTP servers using the config startConfig :: Config -> IO () startConfig = (<>) <$> HTTP.startConfig <*> WS.startConfig -- | Start the server with default settings (HTTP on port 3000, websockets -- on port 9160) start :: IO () start = startConfig defaultConfig