iOS Swift WebSocket - Set session data for Vapor server

386 Views Asked by At

I am trying to setup server using Vapor. As client, I have simple iOS app using NSUrlSession - URLSessionWebSocketTask. My question is... how I can set session.data from iOS app?

iOS App - Connect method

func connect(completion: @escaping ()->() = { }) {
        guard webSocketTask == nil else { return }

        self.username = "Name"
        self.userID = UUID().uuidString

        let url = URL(string: "ws://localhost:8080/connect")!
        webSocketTask = URLSession.shared.webSocketTask(with: url)
        webSocketTask?.receive(completionHandler: onReceive)
        webSocketTask?.resume()
        
    }

Vapor:

app.webSocket("connect") { request, ws in
        let controller = Controller()

        let userName = request.session.data["nickname"] ?? "Unknown user"
        let data = request.session.data["data"] ?? "Empty Data"

        controller.addUser(userName, with: room, withConnection: ws)
.....
....
...
..
.
1

There are 1 best solutions below

3
On