0
我正在使用the wai-websockets package(版本3.0.1.1),我想只在用戶已經登錄時纔打開套接字。我有一箇中間件負責處理所有身份驗證問題以及用戶是否登錄將User
記錄放入WAI請求的Vault
。只有在用戶登錄時才接受WAI Websocket請求
是否有某種方式從ServerApp
訪問WAI Request
,或替代檢查開始之前的Request
和傳遞User
價值?
我正在使用the wai-websockets package(版本3.0.1.1),我想只在用戶已經登錄時纔打開套接字。我有一箇中間件負責處理所有身份驗證問題以及用戶是否登錄將User
記錄放入WAI請求的Vault
。只有在用戶登錄時才接受WAI Websocket請求
是否有某種方式從ServerApp
訪問WAI Request
,或替代檢查開始之前的Request
和傳遞User
價值?
以下基本結構將允許你把控制權交給的WebSockets之前分析Request
,並允許您在Request
值傳遞到您的ServerApp
如果需要的話:
#!/usr/bin/env stack
-- stack --resolver lts-9.3 script
{-# LANGUAGE OverloadedStrings #-}
import Network.Wai
import Network.Wai.Handler.Warp
import Network.Wai.Handler.WebSockets
import Network.HTTP.Types
import Network.WebSockets.Connection
main :: IO()
main = run 3000 $ \req send ->
case websocketsApp defaultConnectionOptions _serverApp req of
Nothing -> send $ responseLBS status200 [] "Websockets not supported"
Just res -> send res