معرفی
در این مقاله، نحوه ایجاد یک برنامه اشتراکگذاری صفحه نمایش ساده با استفاده از جریان سیگنال R را خواهیم دید. SignalR هم از جریان سرور به مشتری و هم از سرویس گیرنده به سرور پشتیبانی می کند. در مقاله قبلی من، من با ChannelReader و ChannelWriter برای پشتیبانی از پخش جریانی از سرور به مشتری انجام داده ام. این ممکن است برای اجرای جریان ناهمزمان بسیار پیچیده به نظر برسد، درست مانند نوشتن روش ناهمزمان بدون کلمه کلیدی ناهمگام و انتظار. IAsyncEnumerable جدیدترین ویژگی اضافه شده به Net Core 3.0 و C# 8 برای پخش ناهمزمان است. اکنون اجرای جریان ناهمزمان با چند خط کد تمیز بسیار آسان است. در این مثال، ما از پخش جریانی سرویس گیرنده به سرور استفاده می کنیم تا محتوای دسکتاپ را با استفاده از جریان سیگنالR با پشتیبانی از API IAsyncEnumerable به تمام بینندگان کلاینت راه دور متصل، پخش کنیم.
سلب مسئولیت
کد نمونه این مقاله فقط یک پروژه آزمایشی برای آزمایش جریان سیگنال R با IAsyncEnumerable است. در سناریوهای دنیای واقعی، میتوانید از اتصال همتا به همتا با استفاده از WebRTC یا دیگر کتابخانههای سوکت برای ساخت ابزار اشتراکگذاری صفحه نمایش موثر استفاده کنید.
معماری
![](http://pezhvak24.ir/dl/10kcor/cscd/article/screencastr-simple-screen-sharing-app-using-signalr-streaming/Images/Architecture.png)
چگونه کار می کند
نماینده ScreencastR
![](http://pezhvak24.ir/dl/10kcor/cscd/article/screencastr-simple-screen-sharing-app-using-signalr-streaming/Images/1565792893510.png)