PDA

View Full Version : اجرای چند اسکریپت روی یک پرت و در یک پروسس



arenaw
چهارشنبه 16 اردیبهشت 1394, 12:07 عصر
سلام.

روی یک پنلی که قابلیت نصب اپلیکیشن رو داره، دارم کار میکنم (بیس پنل php هستش). تعدادی از این اپلیکیشن‌هایی که نوشتم، nodejs لازم دارن. مثل اپلیکیشن چت کاربران و وضعیت سیستم و ...
کاری که کردم، اینه که این اپلیکیشن‌ها، به صورت جداگونه یک فولدر nodejs دارن و اسکریپت node و بقیه ماژول‌های node داخل اون فولدر قرار گرفته و از طریق یک پورت خاص (هر ماژول، یک پورت)، اتفاقات رو به پنل خبر میده.
الان که تعداد این ماژول‌ها زیاد شده، میبینم که تعداد پورت‌های اشغال شده و تعداد فایل‌های یکسان این ماژول‌ها ام داره زیاد میشه. مثلا هر اپلیکیشن واسه خودش یه اسکریپت ‌node و یک ماژول socket.io و به طور کلی یک proccess جداگونه داره.

راهی که به ذهنم رسیده، اینه که من بیام یک اسکریپت اصلی داشته باشم. این اسکریپت اصلی که داخلش ماژول‌های mysql و socket.io و خلاصه همه چی اینکلود شده، اسکریپت nodejs اپلیکیشن‌های نصب شده رو بگیره و درون خودش اجرا کنه.
خوبی این روش واسه من اینه که دیگه لازم نیست هزار تا اسکریپت رو اجرا و دیباگ کنم و فقط یه اسکریپت اجرا میشه و اون، همین کار رو واسه من میکنه.
اما اگه من اینکار رو انجام بدم، یه مشکلایی بوجود میاد. مثلا توی متغیر های global ای که توی اپلیکیشن هام هست، تداخل ایجاد میشه و مثلا ممکنه دوتا proccess مختلف، یه ایونت یکسان رو امیت کنن و این ایونت، واسه سوکتهای هرکدوم، یه معنی جدا داشته باشه.

راهنمایی ای که از دوستان میخوام، اینه که کسی راهی به ذهنش میرسه که این کار رو بدون کثیف کاری و با حد اقل تغییر توی کدهای حال حاضر انجام بدم؟

cups_of_java
پنج شنبه 17 اردیبهشت 1394, 09:59 صبح
شما اساسن باید از اول یک اپ expressی می نوشتی که اینا میشدن routeها یا middleware های مختلفت...
و اینکه رویداد های سراسری هم نام تعریف کردی (بدون هیچ namespacingی) کار اشتباهی بوده و باید درستش کنی وگرنه هرچی جلوتر میری بیشتر دردسر میشه برات :)