我正在创建一个聊天应用程序,其 WebSocket 服务器是用 java 编写的。
对于 WebSocket 客户端,我使用的是SocketRocket库。
当我尝试从localhost
or连接时,一切正常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 代码访问。
因此,我认为问题出在客户端。
任何帮助将不胜感激。
提前致谢