В Vapor 2 было возможно получить доступ к сеансу при подключении нового веб-сокета.
Например:
setupRoutes(){
socket("ws") { request, websocket in
let session = try request.assertSession()
guard let userId = session.data["user_id"]?.string else {
..
}
}
В Vapor 3 configure.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 SessionMiddleware не будет вызываться до передачи HTTP-запроса на обновление WebsocketServer.
Итак, как я могу получить доступ к информации о сеансе?