私は、UWPからエクステンションに1MBを超えるデータを送信する必要があるEdgeのエクステンションを開発しています。エッジエクステンションネイティブメッセージング:UWPメッセージサイズの制限を処理する
私は1MB未満であることをデータをチャンクと返答に上記ループにおける第二の応答を送信するときにアプリサービスがキャンセルされ
private async void OnAppServiceRequestReceived(AppServiceConnection sender, AppServiceRequestReceivedEventArgs args) {
AppServiceDeferral messageDeferral = args.GetDeferral();
// This is to be replaced with enumerator
for (int i = 0; i < number_of_chunks; i++) {
// construct reply identifying the chunk number and termination
await args.Request.SendResponseAsync(reply);
}
messageDeferral.Complete();
}
下のようなものを複数回送信することを試みました。対応するリクエストがある場合にのみレスポンスを送信できるようです。誰かがこれを確認できますか?
要求なしで非同期にデータを送信する代替メカニズムがUWPにありますか。
私が考えることのできるもう1つの選択肢は、チャンクロジックをバックグラウンドに移動させ、それが正しいと感じないようにすることです。
FWIW、Chrome & Firefoxにこのような制限はなく、標準出力に非同期でメッセージを送信できます。
更新#1:ピーターは、私は同じエラー秒sendReplyための「方法は、予期しない時に呼ばれていた」を取得怖いです。私は以下を試して、これがあなたが意味していたことを願っています。
private async void OnAppServiceRequestReceived(AppServiceConnection sender, AppServiceRequestReceivedEventArgs args) {
// This is to be replaced with enumerator
for (int i = 0; i < number_of_chunks; i++) {
// construct reply identifying the chunk number and termination
AppServiceDeferral messageDeferral = args.GetDeferral();
await args.Request.SendResponseAsync(reply);
messageDeferral.Complete();
}
}