ali salimi
4 سال پیش توسط ali salimi مطرح شد
14 پاسخ

اتصال بازی جاوااسکریپتی به هاست

سلام و درود بنده یک بازی ساختم با جاوااسکریپت که به صورت رندوم یک سری داده هارو نمایش میده، میخوام این داده ها برای تمامی کسانی که نصب میکنند در زمان حال یکسان باشد.
الان هر شخص که بازی رو باز میکنه نمایش اعداد متفاوتن برای اقای x و اقای y
میخواهم موتور این بازی ساده برای همه یکسان اجرا بشه.

با زبان جاواسکریپت و php بدون فریم ورک نوشته شده است.

کسی میتونه راهنمایی کنه؟


ثبت پرسش جدید
وحید
تخصص : Fullstack
@forughi.vahid 4 سال پیش مطرح شد
0

@salim
دو راه برای بروز رسانی اطلاعات سرور دارید
یکی اینکه هر وقت کاربری بازی رو باز کرد api لود کنید و دیتابیس سرور رو بروز بشه ، فرقی نمیکنه کدوم کاربر ، فقط مهم اینه که هر کاربری اومد دیتا هاتون به روز باشه. ولی تو این روش کاربر باید منتظر به روز شدن اطلاعات باشه ، و اگه چند روز از بازی گذشته باشه و شما نیاز داشته باشید اطلاعات زیادی وارد دیتابیس کنید زمان زیادی رو از کاربر میگیره.
روش دوم و بهتر اینه که از کرون جاب استفاده کنید ، یعنی برای سرور مشخص کنید که مثلا هر 1 دقیقه فلان کار رو انجام بده ، در اینجا اون کار ران کردن یه فایل php هست که اطلاعات رو بروز میکنه ،تمام سرور ها این امکان رو به شما میدن.
اگر قرار نیست اطلاعات زیادی وارد دیتابیس بشه همون روش اول جواب میده ولی اگر توی بروز رسانی اطلاعات خیلی از اطلاعات رو میخواید بروز کنید و زمان زیادی رو صرف میکنه باید هر دو روش رو پیاده کنید تا مطمئن بشید کاربر اطلاعات درست رو میبینه.


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 4 سال پیش مطرح شد
0

اگر بخواهی داده ها یکسان باشند .. باید از یک سورس واحد این داده ها رو بگیری
که نمونه خوبش استفاده از یه API هست.


ali salimi
@salim 4 سال پیش مطرح شد
0

@ali.bayat ممنون از پاسخ شما بزرگوار، ولی چگونه میشود با api اینکار رو کرد. باید سایت دیگری تهیه کنم برای اینکار که منبع api باشد یا توی سایت خودم میشه اینکارو کرد؟


آرمین امیری نسب
تخصص : برنامه نویس فرانت اند
@arminamirinasab 4 سال پیش مطرح شد
0

یا باید API بنویسید که کمی سخته ولی شاید بتونید همچین api آماده ای پیدا کنید


ali salimi
@salim 4 سال پیش مطرح شد
0

@arminamirinasab ممنون از پاسخ شما، ولی خب مشکل اینجاست چجوری باید api بنویسم که به صورت موتور در طول شبانه روز فعال باشه و برای همه یکسان نشون بده! که وقتی مرورگر رو باز میکنم از لحظه لود شروع نشه و از قبل این بازی فعال بوده باشه


saman
@saman1111 4 سال پیش مطرح شد
0

@salim
شما api رو مینویسی و دیگه اون همه مقدار های داخل بازی رو مشخص میکنه
و کلا یه بخشی از منطق بازی رو روی api پیاده میکنی. من نمیدونم دقیقا چجوریه بازی، ولی اون بخشش که میگی باید بازی از قبل یه سری مقادیر داشته باشه رو باید روی api انجام بدی، و اگه حرکات کاربر هم تاثیر داره توی بازی بقیه باید با استفاده از درخواست دادن به api حرکات کاربر رو روی سرور پیاده کنی.

توی خود سایتت میشه این کار رو کرد. سایت جدا نیاز نداره، یه هاست یا سرور بگیری میتونی دوتاش رو روشون پیاده کنی


ali salimi
@salim 4 سال پیش مطرح شد
0

@saman1111 ممنون از پاسختون ولی api بسازیم که موتورش در حالتی که مرورگرمون باز میشه فعال نیست. مثلا میخوام وقتی مرورگر باز میشه اگر بازی روی دقیقه 2 است همون رو نمایش بده نه اینکه از سر اول نشون بده.


saman
@saman1111 4 سال پیش مطرح شد
0

@salim
من شاید منظورتون رو درست متوجه نمیشم
ببینید کدوم یکی از این موارد مد نظرتون هست:

۱- کاربر اومده بازی کرده رسیده به دقیقه ۲. بازی رو ول کرده بعدا اومده و شما میخواین از همون دقیقه ۲ که بازی رو رها کرده ادامه بده

۲- بقیه کاربران بازی میکنن و بازی رو به دقیقه ۲ میرسونن. کاربر جدید که میاد میخواین بازی رو از همون دقیقه ۲ ( که بازی بقیه کاربرا باعث شده به اونجا برسه. وگرنه خود به خود نمیرسیده ) ادامه بده

۳- بازی داره همینجوری برای خودش ادامه پیدا میکنه و به دقیقه ۲ میرسه. شما میخواین کاربر وقتی تازه وارد بازی شد از همون دقیقه ۲ شروع کنه بازی رو


ali salimi
@salim 4 سال پیش مطرح شد
0

@saman1111 درود بر شرفت، بزرگوار دقیقا منظورم گزینه 3 هستش. کاملا شیوا بیان کردید. میخوام بازی برای خود به صورت رندوم ادامه پیدا کنه. ولی خب باید به جایی وصل و فعال باشه مدام که همینجوری ادامه پیدا کنه حتی اگر کاربری داخل بازی نباشد


saman
@saman1111 4 سال پیش مطرح شد
0

@salim
خواهش میکنم
ببینید نیازی نیست به جایی وصل باشه که ادامه پیدا کنه، شما باید منطق بازی رو بیاری سمت سرور، یعنی بازی روی سرور انجام بشه به صورت مداوم. و هرکی خواست بازی کنه جاوا اسکریپت شما میاد از سرور نگاه میکنه ببینه بازی کجاست و نشون کاربر میده
یعنی قسمت جاوا اسکریپت که الان نوشتین میشه یه چیزی که نمایش میده داده هایی که روی سرور هستن رو، و مدام هم در حال عوض شدنن با استفاده از کدی که سمت سرور نوشته شده


ali salimi
@salim 4 سال پیش مطرح شد
0

@saman1111 ممنونم از پاسختون ولی خب چجوری وصل به سرور بشیم. باید دقیقا چیکار کرد سمت سرور (هاست)؟


جواد کرمی
تخصص : توسعه دهنده وب و اپلیکیشن | فر...
@javadkarami 4 سال پیش مطرح شد
0

به نظرم شما میتونید کدهای جاوااسکریپت رو که مربوط به اجرای بازی میشن رو جدا کنید، و دیتا هایی که تولید میکنه رو توی دیتابیس ذخیره کنید. مثلا بگید که هر دو ساعت یه بار این کد ران بشه و بعد دوساعت که بازی تموم شد دوباره از اول اجرا بشه با داده های جدید.
حالا هرسری این داده ها رو توی دیتابیستون ذخیره میکنید. مثلا مدت زمانی که از شروع بازی گذشته و هر دیتای دیگه ای.
در آخر میاید و اون دیتا ها رو در ویو سایتتون نمایش میدید و عملیاتی که میخواید رو روش انجام میدید. به طور مثال اگر کاربر روی این دکمه کلیک کرد فلان دیتا برای این کاربر( یا حتی برای همه کاربران) آپدیت بشه


ali salimi
@salim 4 سال پیش مطرح شد
0

@javadkarami متشکرم از پاسختون. خب من چیکار کنم سایت خودش این کاررو انجام بده هر دو ساعت یه بار چجوری میشه رکوست بده. تا کاربری صفحه رو لود نکنه که رکوستی به دیتابیس ارسال نمیشه.


saman
@saman1111 4 سال پیش مطرح شد
0

@salim
هرموقع صفحه لود بشه دیتا ها هم لود میشه برای کاربر

لازمه که در حین بازی کاربر هم باز براش دیتای جدیدی بیاد از سمت سرور ؟ یا این که با همون دیتاهای اولی کارش راه میفته ؟


وحید
تخصص : Fullstack
@forughi.vahid 4 سال پیش مطرح شد
0

@salim
دو راه برای بروز رسانی اطلاعات سرور دارید
یکی اینکه هر وقت کاربری بازی رو باز کرد api لود کنید و دیتابیس سرور رو بروز بشه ، فرقی نمیکنه کدوم کاربر ، فقط مهم اینه که هر کاربری اومد دیتا هاتون به روز باشه. ولی تو این روش کاربر باید منتظر به روز شدن اطلاعات باشه ، و اگه چند روز از بازی گذشته باشه و شما نیاز داشته باشید اطلاعات زیادی وارد دیتابیس کنید زمان زیادی رو از کاربر میگیره.
روش دوم و بهتر اینه که از کرون جاب استفاده کنید ، یعنی برای سرور مشخص کنید که مثلا هر 1 دقیقه فلان کار رو انجام بده ، در اینجا اون کار ران کردن یه فایل php هست که اطلاعات رو بروز میکنه ،تمام سرور ها این امکان رو به شما میدن.
اگر قرار نیست اطلاعات زیادی وارد دیتابیس بشه همون روش اول جواب میده ولی اگر توی بروز رسانی اطلاعات خیلی از اطلاعات رو میخواید بروز کنید و زمان زیادی رو صرف میکنه باید هر دو روش رو پیاده کنید تا مطمئن بشید کاربر اطلاعات درست رو میبینه.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام