iOS WebSocket 未使用 SocketRocket 连接到服务器



我正在创建一个聊天应用程序,其WebSocket服务器是用java编写的。
对于WebSocket客户端,我正在使用SocketRocket库。

当我尝试从localhost127.0.0.1连接时,一切正常。
但是当我尝试使用公共 IP 连接它时,它会- (void) webSocket:(SRWebSocket *)_webSocket didFailWithError:(NSError *)error方法中给出以下错误:

Error Domain=NSPOSIXErrorDomain Code=57 "The operation couldn’t be completed. Socket is not connected"

以下是我初始化SRWebSocket对象的方法:

webSocket = [[SRWebSocket alloc] initWithURL:[NSURL URLWithString:@"ws://IP_ADDRESS:8080/ChatWebSocket/chat/12345"]];  
// connects successfully when IP_ADDRESS = localhost or 127.0.0.1 
// gives 'Socket is not connected' error when IP_ADDRESS = some public IP address

我也尝试用initWithURLRequest:初始化SRWebSocket

附言我还测试并验证了WebSocket服务器是否可以通过其公共IP地址从javascript代码访问。

因此,我认为问题出在客户端。

任何帮助将不胜感激。
提前致谢

经过近2天的研究,我终于意识到问题仅在模拟器上出现。
当我在iPod touch上测试相同的代码时,它就像一个魅力!:)

最新更新