run
selbst kann das nicht tun. Sie müssen runSettings
verwenden:
Der Settings
Parameter, den Sie übergeben möchten, enthält die Informationen über die Hosts, die er überwacht.
Der relevante Typ hier ist HostPreference
. Obwohl Sie verschiedene Platzhalter angeben können, z. B. IPv6Only
, verwenden Sie hier den Konstruktor Host
.
Basierend auf this answer, werde ich ein minimales Beispiel zeigen, nur auf localhost zu hören.
Beachten Sie, dass Accessoren wie settingsHost
als veraltet markiert sind, aber die offizielle Dokumentation für Warp 2.1.2.1 zeigt noch ein Beispiel mit settingsTimeout
here.
{-# LANGUAGE OverloadedStrings #-}
import Network.Wai (responseLBS)
import Network.Wai.Handler.Warp
import Network.HTTP.Types (status200)
import Network.HTTP.Types.Header (hContentType)
main = do
let port = 3000
putStrLn $ "Listening on port " ++ show port
let settings = defaultSettings { settingsPort = port,
settingsHost = Host "127.0.0.1" }
runSettings settings app
app req = return $
responseLBS status200 [(hContentType, "text/plain")] "Hello world!"
Danke für die Aktualisierung auf die neueste API! Ich habe meinen eigenen Code vor langer Zeit aktualisiert, aber vergessen, meine Antwort entsprechend zu aktualisieren. Ich werde deine Antwort als akzeptiert markieren! –