ببینید به زبان ساده میشه اینو گفت. من برنامه هستم. یه نفرو استخدام میکنم (جناب سوکت) میفرستم جلو درمون فال گوش وای میسه. اگه پستچی نامه ای واسم آورد اون جناب سوکت زود میاد به من خبر میده.
حالا شما وقتی سوکت ایجاد میکنید میگید آی پی من اینه و پورتمم اینه (اینا میشه آدرس شما برا سرور هم همین مراحل صدق میکنه) سرور هم آی پی و پورت شما رو میدونه شما هم مال سرور رو میدونید. حالا سرور خواست به شما چیزی ارسال کنه به اون آی پی و پورتتون ارسال میکنه. سوکت شما هم گوش به زنگه هروقت چیزی رسید به شما خبر میده (برا سرورم اینطوره)
اگه تایمر استفاده کنید مجبورید مثلا هر ثانیه یه بار به سرور زنگ بزنید بگید که من پیام جدیدی ندارم؟ سرور هم بهتون میگه نه.(اینکار باعث افزایش ترافیک شبکه میشه. فرض کنید این پیام رسان شما چیزی حدود 10000 تا کاربر داره و هر کاربر هر ثانیه درخواست میفرسته اونموقع باید سرور هر ثانیه ده هزارتا درخواستو جواب بده.) الان شما هر روز نمیرید که پستخونه. آدرس دارید هر وقت نامه ای داشتید میاد در خونتون.(تو این حالت وقتی کاربری پیام داشته باشه فقط به اون پیام رو ارسال میکنه و بار زیادی روش نیست.)
فک کنم مثال خیلی ساده ای زدم.
در مورد سینگل آر اطلاعاتی ندارم.
بله شما میتونید nodejs رو روی یه سیستم یا وی پی اس نصب کنید . و سرور براش بنویسید.
سپس برنامه کلاینت رو با هر زبونی پیاده سازی کنید. شما در حقیقت به یک آی پی و پورت خاصی اطلاعات ارسال میکنید و در طرف مقابل اونو دریافت و پردازش میکنه حالا ممکنه سرورتون هر چیزی باشه چه نود و...
این دوتا لینک رو نگاه کنید.
https://www.youtube.com/watch?v=HyGtI17qAjM بخش سرور
https://www.youtube.com/watch?v=nwV3MS6pryY بخش کلاینت