Objective-C: не удается подключиться к серверу с помощью Socket.IO
Я использую Socket.IO-Client-Swift' -13.2.0' для реализации моего проекта в Objective-C. Я пытаюсь подключиться к сервису Node.js с помощью Socket.IO и следовал документации для Objective-C. Но когда я пытаюсь запустить свой код, консоль регистрирует "попытка подключения сокета, когда двигатель не открыт" и не может пройти.
Ниже мой код,
@import SocketIO;
NSURL* url = [[NSURL alloc] initWithString:@"http://URL_STRING:PORT_NUMBER"];
SocketManager *manager = [[SocketManager alloc] initWithSocketURL:url config:@{@"log":@yES, @"compress":@yES}];
SocketIOClient *socket = [manager defaultSocket];
[socket on:@"connect" callback:^(NSArray* data, SocketAckEmitter* ack) {
NSLog(@"socket connected");
}];
[socket connect];
И консоль,
2018-06-01 00:22:06.694853+1000 [885:732318] LOG SocketIOClient{/}: Adding handler for event: connect
2018-06-01 00:22:06.695467+1000 [885:732318] LOG SocketIOClient{/}: Handling event: statusChange with data: [connecting]
2018-06-01 00:22:06.695578+1000 [885:732318] LOG SocketIOClient{/}: Joining namespace /
2018-06-01 00:22:06.695639+1000 [885:732318] LOG SocketManager: Tried connecting socket when engine isn't open. Connecting
2018-06-01 00:22:06.695679+1000 [885:732318] LOG SocketManager: Adding engine
2018-06-01 00:22:06.697262+1000 [885:732355] LOG SocketEngine: Starting engine. Server: http://URL_STRING:PORT_NUMBER
2018-06-01 00:22:06.697323+1000 [885:732355] LOG SocketEngine: Handshaking
2018-06-01 00:22:06.699886+1000 [885:732355] LOG SocketEnginePolling: Doing polling GET http://URL_STRING:PORT_NUMBER/socket.io/?transport=polling&b64=1
Как решить эту проблему? Благодарю.
2 ответа
Решено:
Сделайте менеджера сильным.
@property (strong, nonatomic) SocketManager* manager;
SocketIOClient *socket = [manager socketForNamespace:@"/"];
добавьте эту строку, и она будет
вместо того
SocketIOClient *socket = [manager defaultSocket];