iOSでSocketRocketまたはUnitt Webソケットライブラリを使用して安全なWebソケットを実行するのと同じ問題があります。私は Java Web ソケット サーバー (Netty) を制御しており、サーバー側の SSL/TLS データを詳細に観察できます。ソケットにはポート 6970 を使用します。
クライアント wss ソケットが TLS ハンドシェイクで適切に開かれた後、最初のクライアント データ書き込み、つまり Web ソケット ハンドシェイクでサーバー エラーが発生します。クライアントは 202 バイトを書き込み、サーバーは 272 バイトを受信し、メッセージ認証コードはサーバーで失敗します。サーバー トレースにクライアント データが表示されますが、8 バイトのガベージが前に保留されています。
まず、SocketRocket ライブラリを試してみましたが、サーバー上で同じ結果になりました。良好なハンドシェイクの後に不良 MAC が発生しました。私の Android バージョンの Unitt クライアントはうまく機能します。私の JavaScript セキュア Web ソケット コードもうまく機能します。
iOS/XCode では、Unitt/AsyncSocket/doSendBytes の CFWriteStreamWrite(...) までデバッグできます。これは、202 クライアント データ バイトが実際に書き込まれることを報告します。しかし、さらにデバッグする方法については途方に暮れています。どこかで、送信中に iOS TLS フレームワークがクライアント データを破損していると思います。