dph*_*son 19 haskell websocket yesod
我想在Yesod应用程序中使用websockets.如果我对websockets包的理解是正确的,这意味着我需要定义一个ServerApp,它是PendingConnection -> IO ()如何处理连接请求的函数,然后使用我的Warp设置的settingsIntercept字段将其插入我的应用程序.如何根据Yesod的身份验证进行处理?例如,如果我想拒绝除以授权用户身份登录的客户端之外的连接,我该如何检测当前登录的用户?因为我们不是在Handler monad中工作,所以似乎我们没有办法调用像maybeAuthId.是手动查看连接请求标头的唯一选择吗?
无论您是否使用 Websocket,您仍然必须使用会话来识别/授权服务器端的客户端。
Websockets 可以取代你的 api 路由,但不能取代你的服务器中间件。
当然,一旦客户端在服务器上尝试任何 HTTP 动词(get、post ...),授权和中间件之类的事情就需要处理,一旦 websocket 启动,就不再有中间件运行,客户端应该已经有了一个已识别的会话(如果他已经登录),并且每次客户端通过 Websocket 向服务器请求更多数据时都需要使用该会话。
| 归档时间: |
|
| 查看次数: |
361 次 |
| 最近记录: |