سلام دوستان خسته نباشید.
من یه ابهامی در مورد سوکت داریم ممنون میشم اگر کسی میدونه راهنمایی کنه
میخوام بدونم با توجه به اینکه realtime بودن یه چیز خیلی جذابه توی حوزه ی وب; اما کمتر وبسایتی رو دیدم که بخش های مختلفش رو با سوکت پیاده سازی کنه.
صرف نظر از کاربر سوکت که شاید خیلی ها بگن خب چه لزومی داره مثلا سایتی مثل راکت بیاد همه ی بخش هاشو با سوکت پیاده سازی کنه که هر اتفاقی افتاد بصورت realtime قابل مشاهده باشه(بیشتر توی شبکه های اجتماعی میبینم کاربرد سوکت رو); میخوام بدونم پیاده سازیش سخته؟ فشار به سرور میاره؟ پایدار نگه داشتنش پیچیده ست؟
مقاله زیر مقایسه های خوبی بین این دو انجام داده و احتمالا دید خوبی بهتون میده:
https://blog.feathersjs.com/http-vs-websockets-a-performance-comparison-da2533f13a77
خوب سوکت هم استفاده های خودش رو داره
و همچنین هزینه های خودش رو
سوکت یه نوع ارتباط هست که باز میمونه
و این باعث میشه روی سرور هم یک بار اضافه اعمال بشه
در کل باید شرایط رو سنجید
فرض کن لیستی از داده های Realtime داریم که باید مانیتور بشن
اگر قرار باشه هر ۲۰ ثانیه درخواست Ajax بزنیم و حجم زیادی داده رو بگیریم
خوب چرا از سوکت استفاده نکنیم؟
یا مثلا برای توسعه داده اپ های چت، چه گزینه ای بهتر از سوکت هست؟
پیاده سازیش خیلی پیچیده نیست
یه وب سوکت سرور نیاز داری
و یه کلاینت که سمت جاوااسکریپت، اندروید یا غیره به سرور وصل بشه
و روی کانال های خاص subscribe کنه (عموما این کانال ها public, private و یا از نوع presence هستند)
بحث امنیت رو هم باید مدنظر داشته باشی
در ضمن میتونی سرویس هایی مثل پوشر رو هم بررسی کنی
خب ابزاری هست که بشه باهاش باری که سوکت در قبال بازموندش روی سرور میزاره رو محاسبه کرد؟
فرض کنید شرایطی هست که میخوایم در 1 دقیقه 10 تا ریکویست به سرور بزنیم بصورت ajax. اینجا سوکت باز کنیم بارش کمتره یا اجازه بدیم 10 تا ریکوست در دقیقه زده بشه؟ در کل میخوام بصورت نسبی میزان باری که سوکت تولید میکنه رو نسبت به اون عدد فرضی 10 به دست بیارم. یعنی بگم یک کانکشن سوکت معادل چند درخواست ajax بار تولید میکنه؟ قطعا عدد دقیق نمیخوام. صرفا میخوام یه ذهنیتی به دست بیارم از بک گراند سوکت
@ali.bayat
حالا نمیدونم با چه زبانی میخاین پیاده سازی کنید ولی ....
نمیدونم چقدر در مورد نحوه اجرای php خوندید، اما به نظرم بهتره که کلا مباحثی مثل وب سوکت رو با زبانهایی مثل پایتون ( نیمه مفسری) و یا nodeJs ( اجرای خفن مبحثش طولانیست باید بخونید در موردش ) انجام بدین - چون هر دفعه که درخواست میاد سمت php میاد از اول کل instance هاو نمونه object ها رو میسازه
منظور کلا از باری که روی شبکه به خاطر تعداد درخواست ها و کوئری خود دیتابیس بگذریم ( اینا رو فاکتور بگیریم چون مشترکن توی هر زبانی که بخاد پیاده سازی بشه) به نظرم عاقلانه نیست کلا این موارد رو با php پیاده سازی کنیم.
@mohsen.mehri6101
با php که نه، پایتون و نود جی اس اوکی ام،من بیشتر دنبال اینم بدونم اگر یک فروشگاه رو با فرضا سوکت بزنی(میدونم غیر منطقیه) چه چالش هایی داره از نظر بار
به نظرم فروشگاه اصلا کاربردی نداره به روش سوکت - شما میخای یک کانکشن دائمی رو باز بزاری برای هندل کردن درخواست های یک فروشگاه فقط ؟
اگر هم میخاین وبسایت خیلی حساس باشه و درواقع حرکت های کاربر رو دنبال کنه و واکنش بهش نشون بده از کتابخونه هایی مثل vueJs ,angular or react استفاده کنید که بتونید یک وب سایت spa راه اندازی کنید.
من باشم اگه بخام چنین وب سایتی راه بندازم - با ابزار قوی ای مثل liveWire توی لاراول استفاده میکنم(که اینم البته خوب نیست چون کلا سمت سرور اجرا میشه و فقط جواب رو برمیگردونه این سمت که یک کد html، اما اون سه تا کتابخونه فقط اطلاعات رو برمیگردونن و اینطرف فقط اطلاعات دیتبایس رو اینطرف هندل میکنی که فشاری به سرور نمیاد و داره از کلاینت برای اجرا استفاده میکنه) .اما سوکت نه
مقاله زیر مقایسه های خوبی بین این دو انجام داده و احتمالا دید خوبی بهتون میده:
https://blog.feathersjs.com/http-vs-websockets-a-performance-comparison-da2533f13a77
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟