رفتن به مطلب
امین مهدی نژاد

دریافتirColyseus

پست های پیشنهاد شده

irColyseus


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

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

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

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

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

منابع:

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

 


 

  • پسندیدن 3
  • تشکر 1

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


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

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

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

مپ دیتا

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

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

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

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

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

  • پسندیدن 5

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


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

سمت سرور کلوسیوس با 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");
    }
}

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

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

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

 

  • پسندیدن 1

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


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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

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

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

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

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

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


×
×
  • جدید...