Я создаю приложение для чата, где на стороне сервера используется node.js, а на стороне клиента - socket.io-client-swift. Когда я пытаюсь подключиться к серверу, он подключается идеально, но когда я хочу получить массив данных, он отвечает пустым массивом. Я пытался много раз, но не работает, но в Android получить данные совершенно без проблем.
- подключиться к серверу
- после подключения emit ("joinRoom")
- когда я подключаюсь к комнате, получаю данные с помощью on ("welcome")
Я добавил две картинки ответа консоли
- первый говорит мне Неверное пространство имен ответ первой части в консоли
- второй показывает мне пустой массив ответ второй части в консоли
менеджер розеток
class SocketIOManager: NSObject {
static let sharedInstance = SocketIOManager()
let manager = SocketManager( socketURL: URL(string:"https://realtime.allonsy-tech.com/members_chat")!, config: [.log(true),.compress])
var socket : SocketIOClient!
override init() {
super.init()
self.socket = manager.defaultSocket
}
// /members_chat
func establishConnection(){
socket.connect()
}
func closeConnection(){
socket.disconnect()
}
func joinTheRoom(){
socket.emit("joinRoom") {
print("I have joined ")
}
}
func welcome ( ){
socket.on(clientEvent: .connect) {data, ack in
print("socket connected")
self.joinTheRoom()
self.socket.on("welcome") { (data, ack) in
print(data)
print("\(ack)")
}
}
}
}
My ViewController
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
SocketIOManager.sharedInstance.establishConnection()
SocketIOManager.sharedInstance.welcome()
}
}