我正在创建一个其WebSocket服务器是用java编写的聊天应用程序 对于WebSocket客户端,我使用SocketRocket库。
当我尝试从localhost
或127.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
我还尝试使用SRWebSocket
初始化initWithURLRequest:
。
P.S我还测试并验证了WebSocket服务器可以通过其公共IP地址从javascript代码访问。
因此我认为问题出在客户端。
任何帮助将不胜感激 提前致谢
答案 0 :(得分:-1)
经过近2天的研究,我终于意识到问题只出现在模拟器上了 当我在iPod touch上测试相同的代码时,它就像一个魅力! :)