#ios #swift #websocket #nsurlsession #urlsessionwebsockettask
Вопрос:
Я пытаюсь настроить сервер с помощью Vapor. В качестве клиента у меня есть простое приложение для iOS, использующее NSURLSession — URLSessionWebSocketTask. Мой вопрос… как я могу установить сеанс.данные из приложения iOS?
iOS App — метод подключения
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:
Вы можете использовать NSURLSessionDataTask.
https://developer.apple.com/documentation/foundation/nsurlsessiondatatask
Комментарии:
1. Не могли бы вы привести пример кода, пожалуйста? Я знаю, что NSURLSessionDataTask можно использовать для получения данных, но не уверен, что я могу передавать данные с ним на сервер на основе Vapor? В любом случае пример кода будет оценен по достоинству!
2. К сожалению, я не могу прямо сейчас. Но я вернусь позже к этой странице. Прошу прощения за это. Я проходил мимо и просто дал вам небольшой совет. Почему сервер на базе vapor может отличаться от любого другого сервера? Это было 2 дня назад, это исправлено?
3. Речь идет не о Vapor, а об iOS, потому что iOS должна передавать некоторые параметры серверу при подключении. Это еще не исправлено, все еще ищу решение. Также пробовал файлы cookie, сокет. параметры ввода-вывода… пока не повезло. Если у вас есть свободное время, проверьте это..