تنظیمات پنل سرویس بلادرنگ
در این بخش شما با فعالسازی سرویس بلادرنگ در بکتوری آشنا خواهید شد و کار با تنظیمات مختلف آن را خواهید دید.
پیشنیازها
- در صورتی که با سرویس بلادرنگ آشنایی ندارید، به معرفی سرویس بلادرنگ مراجعه کنید.
فعالسازی سرویس
جهت فعالسازی سرویس بلادرنگ در پروژه خود، در صفحه اصلی پروژه مورد نظر، به بخش “بلادرنگ” بروید. در صورتی که تاکنون اقدام به فعالسازی نکرده باشید با تصویر زیر مواجه خواهید شد.
همانطور که از متن پیام نمایشدادهشده مشخص است، جهت فعالسازی سرویس کافیست بر روی دکمه فعالسازی کلیک کنید. فعالسازی سرویس بلادرنگ مجانی است و در ازای فعالبودن هزینهای از شما کسر نخواهد شد. دلیل اینکه این سرویس به صورت پیشفرض فعال نیست، مدیریت راحتتر سرویسهای مورد نیاز شماست و فقط در صورتی که تمایل به استفاده از این سرویس دارید باید به سادگی آن را فعال کنید. پس از کلیک بر روی دکمه فعالسازی دیالوگی مشابه زیر را خواهید دید:
پس از تایید نهایی سرویس شما فعال میشود و آماده استفاده خواهد بود.
در صورتی که استفاده شما از سرویس بلادرنگ در حد چت (دونفره، گروهی، کانال و …) باشد، نیازی به تنظیمات بیشتر وجود ندارد و میتوانید مستقیما به سراغ SDK و شروع کار در کلاینت بروید. اما در صورتی که قصد ایجاد رقابت و بازی آنلاین دارید، بایستی به مطالعه این مستند ادامه دهید.
رقابت آنلاین در بکتوری
اگر در حال مطالعه این مستند هستید، قطعا یک نیاز بلادرنگ دارید که قصد برآوردهسازی آن را به کمک سرویس بلادرنگ بکتوری دارید. از دید سرویس بلادرنگ بکتوری، هر بخش از نیازهای اپلیکیشن شما در یکی از این دو دسته جای میگیرد:
- شما به دنبال کاری مشابه چت هستید، یعنی کاربران شما ممکن است ساعتها آنلاین باشند و هر از چندی، پیامهایی به یکدیگر منتقل کنند. و یا گروه تشکیل میدهند، پیامهای گذشته گروه را میبینند و … در مستندات ما، همه این نیازها، به عنوان نیازمندیهای چت نامیده میشود.
- شما در حال ساخت بازی آنلاین هستید و مفهوم رقابت آنلاین را پیادهسازی میکنید. رقابت آنلاین یعنی، تعدادی کاربر در یک بازه زمانی کوتاه (از چند دقیقه تا یکی دو ساعت) وارد یک بازی میشوند و در آن به رقابت میپردازند. در مستندات ما به یک رقابت چند نفره، Realtime Game (یا به اختصار Game) گفته میشود.
در حالت اول از نیازمندیها شما با فعالسازی سرویس بلادرنگ، لازم نیست هیچ کار اضافهای در پنل انجام دهید و مستقیما به سراغ ساخت کلاینت موبایل چت خود میروید. در حالت دوم شما باید تنظیماتی در پنل خود انجام دهید که در ادامه توضیح داده خواهد شد.
سرویس Match-Making
توجه: این بخش فقط برای رقابت آنلاین است و برای نیازمندیهای چت کاربردی ندارد
جهت راهاندازی رقابت آنلاین، شما نیاز به سرویس Match-Making دارید. این سرویس به شما کمک میکند تا انواع مختلف رقابت تعریف کنید، و کاربران سطح امتیاز مشابه بتوانند با یکدیگر بازی کنند. در صورتی که با این سرویس آشنایی ندارید، پیش از ادامه این مستند، مستند راهاندازی Match-Making را مطالعه کنید.
چرخه عمر (LifeCycle) رقابت آنلاین
توجه: این بخش فقط برای رقابت آنلاین است و برای نیازمندیهای چت کاربردی ندارد
یک رقابت آنلاین در بکتوری چرخه عمری دارد که به صورت زیر است (فرض کنید یک بازی ۲ نفره دارید):
- کاربر ۱ درخواست Match-Making میدهد و در صف یافتن حریف قرار میگیرد
- کاربر ۲ که امتیاز نزدیکی با کاربر ۱ دارد نیز درخواست میدهد و بکتوری این دو را به عنوان رقیب هم انتخاب میکند
- از طریق SDK به هر دو کاربر خبر داده میشود که یک رقابت پیدا شده است و لیست بازیکنان (بازیکن ۱ و ۲) به هر دو اعلام میشود
- دو بازیکن، آمادگی خود را برای شروع رقابت اعلام میکنند (Accept). عمل Accept یا با پرسیدن از کاربر ۱ و ۲ انجام میشود و یا شما در SDK بدون اینکه به کاربر خود اعلام کنید، درخواست Accept را به بکتوری ارسال میکنید
- رقابت آنلاین آغاز میشود و شما میتوانید با جابهجایی پیام بین این دو بازیکن، بازی را تا انتها ادامه دهید
- پس از اینکه برنده از دید اپلیکیشن شما مشخص شد، شما در پسزمینه از طریق گوشی کاربر ۱ و ۲ تکلیف برنده را تعیین خواهید کرد و از طریق SDK آن را به بکتوری اعلام میکنید (روشهای دیگری برای تعیین برنده بازی وجود دارد که در ادامه مستند با آنها آشنا خواهید شد)
- در صورتی که هر دو کاربر همنظر باشند (جلوگیری از تقلب)، پیام پایان بازی به هر دو کاربر ارسال خواهد شد و میتوانند نتیجه را به کاربر نمایش دهند
تنظیمات سرویس
توجه: این بخش فقط برای رقابت آنلاین است و برای نیازمندیهای چت کاربردی ندارد
اگر سرویس بلادرنگ را در بخشهای قبلی فعال کرده باشید، خواهید دید که پس از فعالسازی، به جای دکمه فعالسازی، تعدادی تنظیمات دیده میشود که میتوانید مقدار آنها را تغییر دهید. تصویر زیر شکل اولیهای که با آن مواجه خواهید شد را به شما نمایش میدهد:
تنظیمات عمومی
-
امکان ارسال event محدود نشده: در صورت فعال بودن میتوانید قبل از شروع بازی با بعد از اتمام آن نیز رویداد ارسال نمایید.
-
فعالسازی حافظه بلادرنگ: در صورت فعال بودن میتوانید از امکانات مربوط به خصوصیات بازی استفاده کنید.
- امکان ارسال نتیجه توسط کلاینت: این مقدار تعیین میکند که شما چگونه نتیجه بازی را تعیین خواهید کرد. به صورت پیشفرض فعال است و به این معنی است که نتیجه هر Game توسط رأیگیری بین کاربران انجام میشود. رایگیری بدین معنی است که اپلیکیشن شما از طریق SDK نتیجه را خبر میدهد و رای اکثریت مورد تایید قرار میگیرد. برای مثال اگر از ۱۰ بازیکن، ۲ نفر تقلب کنند و بخواهند نتیجه غلط اعلام کنند، با رای ۸ نفر دیگر از چرخه حذف میشوند. در صورتی که وبهوک ارسال نتیجه بازی (که در ادامه توضیح داده شده است) فعال شده باشد، میتوان نظر اعلام شده توسط کاربران را با منطق دلخواه مورد بررسی قرار داد و نتیجهی بازی را در پاسخ وبهوک مشخص کرد. در صورتی که خاموش باشد بدین معنی است که نتوان از طریق SDK نتیجه را تعیین کرد. در این حالت باید با استفاده از قابلیتهای مدیر در بلادرنگ نتیجه را به سرویس بلادرنگ اطلاع دهید و نتیجه به هر یک از کاربران اعلام خواهد شد. این گزینه مناسب وقتی است که امنیت بسیار بالایی احتیاج دارید و حاضرید برای آن کار بیشتری انجام دهید.نتوان از طریق SDK نتیجه را تعیین کرد. در این حالت باید با استفاده از قابلیتهای مدیر در بلادرنگ نتیجه را به سرویس بلادرنگ اطلاع دهید و نتیجه به هر یک از کاربران اعلام خواهد شد. این گزینه مناسب وقتی است که امنیت بسیار بالایی احتیاج دارید و حاضرید برای آن کار بیشتری انجام دهید.
تنظیمات وبهوک
- فعالسازی وبهوک: در صورتی که علاقهمند باشید و یا نیاز داشته باشید که هر پیامی که در یک Game جابهجا میشود از یک تابع سرویس رایانش عبور کند و شما در مورد آن پیام تصمیمگیری کنید باید از تنظیمات web-hook استفاده کنید. پس از زدن تیک فعالسازی web-hook تصویر زیر را خواهید دید. در مورد این مفهوم به طور مفصل در افزودن منطق دلخواه به مسابقه توضیح دادهایم.
مثالهایی از کاربرد ویژگی Webhook عبارتند از:
- در یک مسابقه سوال و جواب آنلاین، شما جواب را به کلاینت نمیدهید تا تقلب نکند، در عوض وقتی یکی از گزینهها را انتخاب میکند، در یک کد در سرویس رایانش از سرویس بلادرنگ میخواهیم که جواب صحیح را به او اعلام کند.
- میخواهیم در سرور برنده را تشخیص دهیم، بنابراین یک webhook در رایانش ایجاد میکنیم که تمام اتفاقات بازی توسط سرویس بلادرنگ به او گزارش شود و تصمیمگیری کند.
- در Game امکان چت (با امکان چت عادی سرویس بلادرنگ متفاوت است) وجود دارد و میخواهیم پیامهایی که کلمات زشت دارد را فیلتر کنید.
- میخواهید وضعیت نقشه بازی را ذخیره کنید، کافیست تمام اتفاقات را از یک webhook عبور دهید و وضعیت نقشه را با هر حرکت بازیکنان به روزرسانی کنید. این ویژگی مثلا برای اتصال مجدد بازیکنانی که اینترنتشان قطع شده است، مناسب است. چون شما میتوانید کلا نقشه فعلی را یکجا به او اعلام کنید.
گام بعدی
در صورتی که استفاده شما از سرویس بلادرنگ، برای نیازمندیهای چت است:
در صورتی که قصد نوشتن یک بازی و رقابت آنلاین را دارید: