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:
。
PS i は、WebSocket サーバーが JavaScript コードのパブリック IP アドレスでアクセスできることもテストおよび検証しました。
したがって、問題はクライアント側にあると思います。
どんな助けでも大歓迎です。
前もって感謝します