import Network.Wai.Application.Static (staticApp, defaultWebAppSettings)
import Network.Wai.Handler.WebSockets (intercept)
import Network.Wai.Handler.Warp (runSettings, defaultSettings,
settingsIntercept, settingsPort)
main :: IO ()
main = do
let s = defaultSettings {settingsPort=9160, settingsIntercept=intercept app}
runSettings s $ staticApp $ defaultWebAppSettings "www"
1)我想知道的是,warp是否可以区分同一端口上的websocket请求和静态请求,以通过仅根据请求运行静态或拦截应用程序来防止开销。
2) 上面的源文件使用管道,这是否意味着为我的 websocket receiveData 使用严格的 ByteString 是安全的,而不必担心可能会溢出我的内存的大量传入数据,或者我应该使用惰性 ByteString 吗?
请注意,您不能像在 http 分块传输编码中那样分块 websocket。