【发布时间】:2018-05-31 16:05:58
【问题描述】:
我正在使用 Socket.IO-Client-Swift'-13.2.0' 在 Objective-C 中实现我的项目。我正在尝试使用 Socket.IO 连接到 Node.js 服务,并遵循了 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
如何解决这个问题? 谢谢。
【问题讨论】:
-
使用过 CFStreamCreatePairWithSocketToHost 或阅读此developer.apple.com/library/content/documentation/… 以更好地理解这个主题,干杯。
-
确保您的客户端版本的套接字与 servrr 版本兼容。这应该主要在实施时完成
标签: ios objective-c socket.io