0

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

で初期化も試みましSRWebSocketinitWithURLRequest:

PS i は、WebSocket サーバーが JavaScript コードのパブリック IP アドレスでアクセスできることもテストおよび検証しました。

したがって、問題はクライアント側にあると思います。

どんな助けでも大歓迎です。
前もって感謝します

4

1 に答える 1