کد نویسی اولیه سرویس بازی های آنلاین دو نفره در شهرک رایگان من


برای من که در سال 1396 ربات تلگرام مینوشتم نوشتن سیستم پیدا کردم همبازی همچنان هم نباید کار سختی بود در سال ۱۳۹۶ ربات kpkchat یا همون چت ناشناس رو با nodejs نوشتم که سورسش اینجاست

البته اون موقع زیاد nodejs ام خوب نبود و خب مثلا node_modules رو هم گیت کردم :))

البته جدای از همه اینا از redis و mongodb هم استفاده کرده بودم و کلا کار تمیزی بود و خیلی از همین ربات ناشناس ها از همین استفاده میکنند

کلیت کار این ربات ساده بود شما رو داخل یک صف قرار میداد و اگر شخص دیگری در صف بود اون رو به شما وصل میکرد و در غیر این صورت منتظر میموند تا شخص جدیدی بیاد و اینطوری میتونستی به صورت ناشناس با یک شخص جدید چت کنی

با این حال در سیستم بازی های دو نفره شهرک ما باید یک سیستم مشابه میداشتیم و این بار دیگه واسط ارتباطیمون تلگرام نبود و بلکه پروژه تحت وب بود پس رفتم سراغ یک لایبرری که همیشه دوستش دارم و تو این شرایط اینترنت ایران اگر در وب سوکت خام مشکل پیش بیاد این لایبرری با تکنیک های دیگه مثل http long polling مشکل رو حل میکنه لایبرری معروف socket.io خب پس بیس منت پروژه رو چیدیم

از همین اول تصمیم گرفتم که اگر در آینده هر شخص جدیدی بخواد برای شهرک بازی بسازه بشه پس زیر ساخت بک اند باید جوری باشه که بشه براش راحت SDK طراحی کرد

برای احراز هویت از JWT استفاده کردم و از توکن شهرک میشه در بازی ها هم استفاده کرد به این شکل که هر بازی باید توکن احراز هویت کاربر رو به ایونت auth امیت کنه و بعد از اون namespace بازی ها در سوکت اون کاربر رو میشناسه


ایونت new_game که باید به همراهش ایدی گیم رو هم امیت کرد یک گیم جدید ایجاد میکنه یا اگر گیمی از همون جنس وجود داشته باشه شما رو به عنوان هم بازی به گیم اضافه میکنه


ایونت new_member نیز به هنگام اضافه شدن یک کاربر جدید به گیمی که در آن حضور دارید به شما امیت میگردد


در نهایت ایونت leave_game هم برای خروج از بازی فعلی کاربر دارد


بیس منت اولیه بر مبنای همون تکنیک بازی چت ناشناس برای بازی ها طراحی شد و آماده هست تا استفاده بشه اولین بازی ای که قراره به سرویس شهرک متصل بشه بازی چرخش بطری هست


به هر حال خوشحال شدم که این رو خوندید و به شهرک سر بزنید :)