رفتن به مطلب

ارسال‌های توصیه شده

irColyseus


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

البته در اصل این کتابخانه مخصوص بازی های چند نفره نوبتی مانند شطرنج می باشد.

نسخه فعلی فقط با نسخه 0.11 کلوسیوس هماهنگ می باشد.

کتابخانه ای که یک سال پیش آن را رپ نموده و چندین بار از آن استفاده نموده ام

آموزش استفاده در ادامه توضیح داده خواهد شد.

منابع:

سایت اصلی کلوسیوس

 


 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

فعلا قسمت بیسیک رو آموزش داده و در ادامه سمت سرور را با مثالی آموظش میدهم.

مپ دیتا

مپ دیتای موجود در این کتابخونه برای ارسال و دریافت اطلاعات با سرور مورد استفاده قرار میگیرد

در ابتدا به متغیر ساخته شده با مپ دیتا نام سابی که قرار است اطلاعات به آن برگشت داده شود نوشته خواهد شد

و در ادامه اطلاعات را همانند مپ های مرسوم بیسیک به صورت کلید/مقدار وارد نمایید.

Dim ird As irMapData
ird.init("net_test")
ird.put("msg","test")

ماژول کلوسیوس

این ماژول اصلی این کتابخانه می باشد.و دارای ساب های زیر میباشد

  • init  مقدار دهی اولیه متغیر مربوط به ماژولی که ساب های برگشتی آن باید اجرا شود را وارد نمایید
  • connect اتصال به سرور - آدرس سرور را وارد نمایید
  • create ساخت یک کلن جدید
  • join اتصال به یک کلن
  • joinOrCreate اتصال و یا ساخت کلن (اگر کلنی خالی نبود یک جدید بساز)
  • joinById اتصال به کلنی با آیدی خاص
  • reJoin اتصال به کلن قبلی در موارد قطع و وصلی اینترنت کاربرد دارد
  • getRoomID گرفتن آیدی یک کلن
  • getRoomSession گرفتن نشس یک کلن
  • close بستن اتصال
  • send ارسال اطلاعات به سرور

مثال:

Sub Globals
	Dim ir As irColyseus
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("l")
	ir.init(Me)
End Sub

Sub Button1_Click
	ir.connect("ws://192.168.1.100:3333")
	ir.joinOrCreate("exam",Null)
End Sub

Sub Net_Join(str As String)
	Log(str)
End Sub

Sub Button2_Click
	Dim ird As irMapData
	ird.init("net_test")
	ird.put("msg","amin")
	ir.send(ird)
End Sub

Sub net_test(ird As irMapData)
	Log(ird.get("msg"))
	ToastMessageShow(ird.get("msg"),False)
End Sub

«موفق باشید.»

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سمت سرور کلوسیوس با Node.js ساخته شده و مثال ما در اینجا با تایپ اسکریپت کد می زنیم

نحوه اجرا سرور

کد سمت سرور را انتهای مطلب دانلود کنید . و با دو دستور زیر برای اجرای اون اقدام کنید

npm install

npm start 

کد راه اندازی سرور

import * as express from 'express';
import { createServer } from 'http';
import { Server } from 'colyseus';

// Import demo room handlers
import { ChatRoom } from "./rooms/chat"

const port = 3333
const app = express();
app.use(express.json());

// Attach WebSocket Server on HTTP Server.
const gameServer = new Server({
  server: createServer(app),
  express: app
});

// Register PublicRoom as "chat"
gameServer.define("exam", ChatRoom);

gameServer.onShutdown(function () {
  console.log(`game server is going down.`);
});

gameServer.listen(port, '0.0.0.0');
console.log(`Listening on http://localhost:${port}`);

در کد بالا سرور را راه اندازی کرده و Room مورد نظر بازی را معرفی میکنیم. پورت اتصال و تنظیمات اتصال به Room خاصی را مشخص میکنیم

ساخت اتاق بازی

import { Room, Client } from "colyseus"
var shortid = require('shortid');



export class ChatRoom extends Room {
    maxClients = 2;
    autoDispose = false;

    onCreate?(options: any): void {
        console.log("Room created!", options);
    }

    onJoin?(client: Client, options?: any, auth?: any): void | Promise<any> {
        console.log('onJoin(', client.id, ')', options);
    }

    onLeave?(client: Client, consented?: boolean): void | Promise<any>{
        console.log("onLeave(" + client.sessionId + ")");
    }

    onMessage(client: Client, data: any): void {
        console.log("Room received message from", client.id, ":", data);
        this.broadcast(data);
    }

    onDispose?(): void | Promise<any> {
        console.log("Dispose Room");
    }
}

در کد بالا حداکثر تعداد کاربران هر اتاق را تعیین کرده و رویداد های لازم در رابطه با واکنش رفتار کاربران هم در سورس وجود دارد

توضیحات بیشتر در اینجا

«موفق باشید.»

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .
توجه: مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
  • اضافه کردن...