TGViewer
Tech Stuff Tech Stuff @techstuff100 · 1.22K subscribers
Post #131 1.1K
موس‌پوینتر لحظه‌ای در Canva؛ از WebSocket تا WebRTC

توی Canva برای پیاده‌سازی قابلیت نمایش لحظه‌ای موس کاربران روی وایت‌برد، چالش اصلی scalability و پایداری زیرساخت بود؛ چون همه کاربران باید موقعیت موس خودشون رو هم‌زمان ارسال کنن. توی فاز اول، با ترکیب WebSocket و Redis یه معماری backend-centric ساختن که از طریق PubSub و Streams داده‌ها رو بین سرورها جابجا می‌کرد.

اما برای کاهش latency و بار روی سرورها، تو فاز دوم رفتن سراغ WebRTC تا کلاینت‌ها مستقیما با هم ارتباط بگیرن. با استفاده از mesh topology، هر کلاینت به بقیه وصل می‌شه و موقعیت موس‌ها از طریق DataChannel رد و بدل می‌شه. در نهایت با یه لایه abstraction تونستن به‌صورت تدریجی از WebSocket به WebRTC مهاجرت کنن.

مقاله

پ.ن: آرزوی سلامتی و امنیت برای همه ❤️

@techstuff100
  • ❤ 10
  • 👍 1
  • 🔥 1
More from @techstuff100
  1. Oct 15, 2026چیزهایی که نباید در مصاحبه فنی بگیم در طول مصاحبه فرصت زیادی برای صحبت داریم؛ چه زمانی که…
  2. Oct 14, 2026با alias می‌تونیم توی شل برای یه دستور اسم کوتاه‌تری تعریف کنیم. مثلا بجای هربار بجای این…
  3. Oct 9, 2026فاصله Levenshtein حداقل تعداد عملیات‌های ممکن (insertion، deletion و substitution) برای تب…
  4. Oct 6, 2026خروجی کد بالا (1) چیه؟ شاید اینطور فکر کنیم که وقتی به return "try" می‌رسیم، اجرای تابع مت…
  5. Oct 2, 2026قانون پارکینسون میگه کار اونقدر کش پیدا می‌کنه تا زمانی که برای تکمیلش داریم رو پر کنه. پر…
  6. Oct 1, 2026با بزرگ شدن LF باید slotهای بیشتری به hash tableمون اضافه کنیم که بهش میگن resizing. منطقی…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →