موسپوینتر لحظهای در Canva؛ از WebSocket تا WebRTC
توی Canva برای پیادهسازی قابلیت نمایش لحظهای موس کاربران روی وایتبرد، چالش اصلی scalability و پایداری زیرساخت بود؛ چون همه کاربران باید موقعیت موس خودشون رو همزمان ارسال کنن. توی فاز اول، با ترکیب WebSocket و Redis یه معماری backend-centric ساختن که از طریق PubSub و Streams دادهها رو بین سرورها جابجا میکرد.
اما برای کاهش latency و بار روی سرورها، تو فاز دوم رفتن سراغ WebRTC تا کلاینتها مستقیما با هم ارتباط بگیرن. با استفاده از mesh topology، هر کلاینت به بقیه وصل میشه و موقعیت موسها از طریق DataChannel رد و بدل میشه. در نهایت با یه لایه abstraction تونستن بهصورت تدریجی از WebSocket به WebRTC مهاجرت کنن.
مقاله
پ.ن: آرزوی سلامتی و امنیت برای همه ❤️
@techstuff100
Post #131
1.1K

- ❤ 10
- 👍 1
- 🔥 1