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 with npm 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