سمت سرور کلوسیوس با 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");
}
}
در کد بالا حداکثر تعداد کاربران هر اتاق را تعیین کرده و رویداد های لازم در رابطه با واکنش رفتار کاربران هم در سورس وجود دارد
توضیحات بیشتر در اینجا
«موفق باشید.»