0

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

当我尝试从localhostor连接时,一切正常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:.

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

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

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

4

1 回答 1

-1

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

于 2014-12-29T11:42:09.480 回答