Websocket への CFStream 接続で使用される CFReadStreamRef。
プロパティ セット:
// ストリームが閉じられたときに CF および BSD ソケットが閉じられていることを確認します。CFReadStreamSetProperty(theReadStream, kCFStreamPropertyShouldCloseNativeSocket, kCFBooleanTrue);
// そのため、アプリがバックグラウンドにあるときにストリームからのメッセージが処理されます CFReadStreamSetProperty(theReadStream, kCFStreamNetworkServiceType, kCFStreamNetworkServiceTypeVoIP);
バックグラウンドで受信メッセージを処理するアプリケーションが必要です。
Wi-Fi の場合、問題はありません...接続が確立され、アプリケーションがバックグラウンドにある場合、着信メッセージはすぐに読み取られて処理されます。
VPN 経由で同じネットワークに接続すると、接続は確立されますが、アプリケーションがフォアグラウンドに戻るまで、着信メッセージはすべてキューに入れられます。
原因を突き止めようとしています。これはコードで修正できるストリーム設定の問題ですか、それとも VPN 設定の問題ですか?