【发布时间】:2019-06-12 13:02:39
【问题描述】:
在 Vapor 2 中,可以在连接新的 websocket 时访问会话。
例如:
setupRoutes(){
socket("ws") { request, websocket in
let session = try request.assertSession()
guard let userId = session.data["user_id"]?.string else {
..
}
}
在 Vapor 3 中配置.swift:
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)
使用 Vapor 3,在将 HTTP 升级请求传递给 WebsocketServer 之前,不会调用 SessionMiddleware。 那么如何访问会话信息呢?
【问题讨论】:
-
嘿,你可以看看我的 Vapor3 的 WS 库,因为它可以解决你的问题 github.com/MihaelIsaev/WS 并且还有示例后端应用程序 github.com/MihaelIsaev/AlexoChat 和 iOS 客户端应用程序 github.com/emvakar/Chat_client