2017-10-10 3 views
0

私はthe wai-websockets package(バージョン3.0.1.1)を使用しています。ユーザーがすでにログインしている場合のみ開きたいと思います。私はミドルウェアすべての認証の問題。ユーザーがログインしている場合は、UserというレコードがWAI要求のVaultに格納されます。ユーザーがログインしている場合にのみ、WAI Websocketリクエストを受け入れる

ServerAppからWAI Requestにアクセスするためのいくつかの方法があり、または別の方法では、それが始まる前にRequestを検査するとしてUser値を渡しますか?

答えて

0

次の基本的な構造は、あなたがWebSocketをに制御を渡す前にRequestを分析することができ、必要であれば、あなたのServerAppRequest値を渡すことができます:

#!/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 
関連する問題