1

我需要使用 warp-tls 而不是普通的 warp 服务器来启动我的 scotty 应用程序,但运行 warp 似乎是在 scotty 的源代码中硬连线的。我错过了一些明显的东西吗?

4

1 回答 1

2

您可以使用该scottyApp函数而不是, 来获取可以传递给 warp 的scottyWAI :ApplicationrunTLS

{-# LANGUAGE OverloadedStrings #-}

import Network.Wai.Handler.WarpTLS (runTLS, tlsSettings)
import Network.Wai.Handler.Warp (defaultSettings, setPort)
import Network.Wai.Middleware.RequestLogger (logStdoutDev)
import Web.Scotty

main :: IO ()
main = do
    let tlsConfig = tlsSettings "your.crt" "your.key"
        config    = setPort 3443 defaultSettings
    waiApp <- scottyApp $ do
        get "/"      (text "hello")
        get "/hello" (text "hello again")
    runTLS tlsConfig config (logStdoutDev waiApp)
于 2015-12-02T17:14:44.967 回答