首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带会话的Vapor 3 Websocket

带会话的Vapor 3 Websocket
EN

Stack Overflow用户
提问于 2019-01-18 17:29:40
回答 1查看 677关注 0票数 2

在Vapor 2中,可以在连接新的websocket时访问会话。

例如:

代码语言:javascript
复制
setupRoutes(){

  socket("ws") { request, websocket in
    let session = try request.assertSession()
    guard let userId = session.data["user_id"]?.string else {
      ..
    }
}

在Vapor 3 configure.swift中:

代码语言:javascript
复制
let wss = NIOWebSocketServer.default()
  wss.get("ws") { websocket, request in

    --get session information--

    websocket.onText { websocket, text in
      websocket.send(text)
    }
 }
 services.register(wss, as: WebSocketServer.self)

对于Vapor3,在将HTTP升级请求传递给WebsocketServer之前,不会调用SessionMiddleware。那么我如何访问会话信息呢?

EN

回答 1

Stack Overflow用户

发布于 2019-05-11 04:10:50

所以,我非常清楚这个帖子已经很旧了,操作员可能在几个月前就找到了答案或者放弃了。以防有人还在寻找它,你不能使用websocket.session来访问会话吗?

这将使Vapor 3代码

代码语言:javascript
复制
let wss = NIOWebSocketServer.default()
  wss.get("ws") { websocket, request in

    guard let userID = (try? websocket.session).data["user_id"]?.string else {
        ...
    }

    websocket.onText { websocket, text in
      websocket.send(text)
    }
 }
 services.register(wss, as: WebSocketServer.self)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54251010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档