Swift не работает веб-сокет соединение
Хочу реализовать чат на веб-сокетах (использую библиотеку SocketIO-Swift-Client), на стороне бекенда использую PHP SocketIO (Workerman). Запускаю, но ничего не работает и ничего не происходит (консоль не выдает ни ошибок, ничего). Нужно, чтобы работало на iOS 12 включительно.
Что использую для разработки:
- XCode 11.6 (обновить не могу, т.к. у меня мак 2012 года)
- Starscream 4.0.4 (как зависимость для SocketIO-Swift-Client, устанавливал с помощью Swift Package Manager)
- SocketIO (папка Source) распакованная в папку с проектом из ветки master (https://github.com/socketio/socket.io-client-swift/tree/master).
Прикладываю код:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let manager = SocketManager(socketURL: URL(string: "wss://mysite.ru:1234")!, config: [
.log(true),
.forceWebSockets(true),
.reconnects(true),
.secure(true)
])
let socket = manager.defaultSocket
socket.on(clientEvent: .connect, callback: { (data, ack) in
print("Соединение установлено")
})
socket.on(clientEvent: .error, callback: { (data, ack) in
print("Ошибка соединения")
})
socket.on(clientEvent: .ping, callback: { (data, ack) in
print("Пинг соединения")
})
socket.on(clientEvent: .pong, callback: { (data, ack) in
print("Понг соединения")
})
socket.on(clientEvent: .reconnect, callback: { (data, ack) in
print("Реконнект соединения")
})
socket.on(clientEvent: .statusChange, callback: { (data, ack) in
print("Смена статуса соединения")
})
socket.on(clientEvent: .websocketUpgrade, callback: { (data, ack) in
print("Апгрейд")
})
socket.connect()
}
}
Вот что выдаёт консоль:
2023-05-21 10:18:42.945624+0300
ExperementalApp[15475:2707089] LOG SocketIOClient{/}: Adding handler for event: connect
2023-05-21 10:18:42.946037+0300
ExperementalApp[15475:2707089] LOG SocketIOClient{/}: Adding handler for event: error
2023-05-21 10:18:42.946314+0300
ExperementalApp[15475:2707089] LOG SocketIOClient{/}: Adding handler for event: ping
2023-05-21 10:18:42.946533+0300
ExperementalApp[15475:2707089] LOG SocketIOClient{/}: Adding handler for event: pong
2023-05-21 10:18:42.946727+0300
ExperementalApp[15475:2707089] LOG SocketIOClient{/}: Adding handler for event: reconnect
2023-05-21 10:18:42.946921+0300
ExperementalApp[15475:2707089] LOG SocketIOClient{/}: Adding handler for event: statusChange
2023-05-21 10:18:42.947101+0300
ExperementalApp[15475:2707089] LOG SocketIOClient{/}: Adding handler for event: websocketUpgrade
2023-05-21 10:18:42.947270+0300
ExperementalApp[15475:2707089] LOG SocketIOClient{/}: Adding handler for event: message 2023-05-21 10:18:42.948363+0300 ExperementalApp[15475:2707089] LOG SocketIOClient{/}: Handling event: statusChange with data: [connecting, 2] СТАТУС ИЗМЕНИЛСЯ
2023-05-21 10:18:42.949233+0300
ExperementalApp[15475:2707089] LOG SocketIOClient{/}: Joining namespace /
2023-05-21 10:18:42.949885+0300
ExperementalApp[15475:2707089] LOG SocketManager: Tried connecting socket when engine isn't open. Connecting
2023-05-21 10:18:42.953197+0300
ExperementalApp[15475:2707089] LOG SocketManager: Adding engine
2023-05-21 10:18:42.956327+0300
ExperementalApp[15475:2707089] LOG SocketManager: Manager is being released
2023-05-21 10:18:42.956386+0300
ExperementalApp[15475:2707157] LOG SocketEngine: Starting engine. Server: wss://mysite.ru:1234
2023-05-21 10:18:42.956589+0300
ExperementalApp[15475:2707157] LOG SocketEngine: Handshaking
2023-05-21 10:18:42.956669+0300
ExperementalApp[15475:2707089] LOG SocketIOClient{/}: Client is being released
2023-05-21 10:18:43.023025+0300
ExperementalApp[15475:2707160] LOG SocketEngine: Engine is being released
Источник: Stack Overflow на русском