Skip to content
This repository has been archived by the owner on Sep 1, 2023. It is now read-only.

Fix delaying streaming #155

Merged
merged 2 commits into from Apr 27, 2018
Merged

Fix delaying streaming #155

merged 2 commits into from Apr 27, 2018

Conversation

cucmberium
Copy link
Contributor

CoreTweetを0.8.2にアップデートしたところUWP環境でのストリーミングに遅延が発生するようになりました。

バージョン0.8.2からはUWP環境においてもSystem.Net.Httpを使用するようになっていますが、
UWP環境ではReadAsStreamAsyncはWindowsRuntimeで実装されたStreamをBufferedStreamに内包した形で返却するようです。
BufferedStreamは内部にバッファされたものより大きい要求が来た際は元のStreamをReadしに行きますが、Readが帰ってくるまで受信済みのデータの一部がそのまま返却されないため、このような遅延が発生するのだと思われます。

これはStreamReader内部のバッファサイズをBufferedStreamのバッファサイズよりも大きくすることで対策することができます。
本プルリクはStreamReaderのバッファサイズをBufferedStreamのバッファサイズと同等にするものです。

説明が舌足らずですがよろしくおねがいします

@azyobuzin
Copy link
Member

ありがとうございます!!
🙇🙇🙇🙇🙇🙇🙇🙇🙇

HttpResponseMessage 作成時に BufferedStream が仕込まれているようで、手出ししようがないですし、バッファーサイズをいじるのは良いワークアラウンドだと思います。

変更箇所にはバッファーサイズを指定している理由をコメントで残しておいていただけると助かります。

@azyobuzin azyobuzin merged commit d6c121d into CoreTweet:master Apr 27, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants