I'm newbie in Colyseus and i would like to say sorry for my poor English, I want create a play Cards game with Node.js and HTML.
I have some question :
How can i get count of user exist in the room?
How can i get name and link of rooms ?
Room details
@h4ss4n answer of my first question: This variable _maxClientsReached hold status of room .
This is how I do it (in HaXe)
Client Side : Joining/Create a room with options where I add the variable RoomName
var theOptions:Map<String, Dynamic>=new Map<String,Dynamic>();
theOptions.set("RoomName", ""+RoomName);
Client Side (getAvailableRooms) this will give you a list off all roomnames created
client.getAvailableRooms(room_type, function(rooms, ?err) {
if (err != null) trace("ERROR! " + err);
for (room in rooms) {
trace(" room ID: "+room.roomId+" room Name: "+room.metadata.RoomName);
}
}
Server Side :
override function onInit (options:Dynamic) {
trace("Lobby created!", options);
setMetadata(options); // is from Room documentation: https://docs.colyseus.io/server/room/#setmetadata-metadata
}
@mdotedot
How can I set setMetadata on server and client ?
I try below Code but didn't work and receive this Error from browser
"Uncaught TypeError: room.setMetadata is not a function
at create (04-create-or-join-room.html:70)
at HTMLButtonElement.onclick (04-create-or-join-room.html:30)"
client side (Local):
function create () {
room = client.join('create_or_join', { create: true });
addListeners(room);
room.setMetadata('hihi');
}
Client side (Server):
setMetadata(meta){
console.log("setMetadata ");
}
Do you have any suggestion ?
Hi @h4ss4n, the room metadata can be set only on server-side, and it's available for the client-side only for room listing (using getAvailableRooms()
method)
@endel Thanks for your answer . I use this solution for set data to setMetadata and This code work well:
Client side (local):
room = client.join('create_or_join', { create: true, name:'hi2020', gametype:1 });
Server side (TS file):
onInit (options) {
this.setMetadata({
name: options.name,
gametype: options.gametype,
});}