Can't get basic client/server communication to work
-
Hi!
I've been trying to get Colyseus up and running but I can't manage to do it. I made it connect a few times but not anymore.
I'm getting almost always the same error:
join error MatchMakeError: "game_room" not defined at new MatchMakeError (/home/squ3ck/projects/test/client/node_modules/colyseus.js/lib/Client.js:58:28) at Client.<anonymous> (/home/squ3ck/projects/test/client/node_modules/colyseus.js/lib/Client.js:182:35) at step (/home/squ3ck/projects/test/client/node_modules/colyseus.js/lib/Client.js:45:23) at Object.next (/home/squ3ck/projects/test/client/node_modules/colyseus.js/lib/Client.js:26:53) at fulfilled (/home/squ3ck/projects/test/client/node_modules/colyseus.js/lib/Client.js:17:58) at processTicksAndRejections (internal/process/task_queues.js:97:5) { code: 4210
I removed most of my code and left with barebone example code:
GameRoom.ts
is from the example code at: https://docs.colyseus.io/server/room/Server:
import http from "http"; import express from "express"; import cors from "cors"; import { matchMaker, Server } from "colyseus"; import { monitor } from "@colyseus/monitor"; import { GameRoom } from "./GameRoom"; const port = Number(process.env.PORT || 2567); const app = express() app.use(cors()); app.use(express.json()); const gameServer = new Server({ server: http.createServer(app), express: app, pingInterval: 0, }); // register your room handlers // gameServer.define("my_room", MyRoom); gameServer.define("game_room", GameRoom); app.use("/colyseus", monitor()); gameServer.listen(port); console.log(`Listening on ws://localhost:${ port }`)
Client:
var colyseus = require('colyseus.js') let client = new colyseus.Client("ws://localhost:2567"); client.joinOrCreate("game_room", {}).then(room => { console.log("joined successfully", room); }).catch(e => { console.error("join error", e); });
Creating the room from the server works, but still can't join from the client.
matchMaker.createRoom("game_room", {}).then(room => console.log(room));
prints this:
RoomCache { clients: 0, locked: false, private: false, maxClients: Infinity, createdAt: 2020-03-28T00:05:33.941Z, name: 'game_room', processId: 'hmecnUvQa', '$rooms': [ [Circular] ], roomId: 's2BR8Qfx3' }
I have installed the server with
npm init colyseus-app
and the client withnpm install --save colyseus.js
It has also happened that the client your report a successful room join but no join events would fire on the server.
What am I missing? Thanks!
-
hi,you should use
matchMaker.defineRoomType
to defind this room.
-
Thanks for your reply!
I think this was a networking issue in the end (maybe due to WSL on Windows) -- I changed the server port and now everything's working even without