Can't create a room in JS Server API

Post here your questions about SFS2X. Here we discuss all server-side matters. For client API questions see the dedicated forums.

Moderators: Lapo, Bax

Post Reply
trueicecold
Posts: 84
Joined: 11 Oct 2009, 11:46
Contact:

Can't create a room in JS Server API

Post by trueicecold »

Hey there,

I'm trying to do something very simple: open a room in the zone extension:

Server code:

Code: Select all

function init() {
	addRequestHandler("FindRoom", onFindRoom);
}

function onFindRoom(event, sender) {
	var cfg = new CreateRoomSettings();
 
	cfg.setName("232323s");
	cfg.setGame(true);
	cfg.setMaxUsers(10);
	cfg.setMaxSpectators(5);
	cfg.setDynamic(true);
	 
	var myNewRoom = getApi().createRoom(getParentZone(), cfg, null);
}
Client code:

Code: Select all

//Server.connection is the SmartFox instance
Server.connection.send(new SFS2X.ExtensionRequest("FindRoom", null));
I get an exception:

Code: Select all

java.lang.ClassCastException:
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Exception: java.lang.ClassCastException
Message: Cannot cast jdk.nashorn.internal.runtime.Undefined to com.smartfoxserver.v2.entities.Room
Description: Java Error invoking Javascript function: $$handleClientRequest
I thought this was pretty straight-forward, am I missing something?

Thanks!
User avatar
Lapo
Site Admin
Posts: 23438
Joined: 21 Mar 2005, 09:50
Location: Italy

Re: Can't create a room in JS Server API

Post by Lapo »

Hi,
I was able to reproduce the issue. It seems that one of the missing optional parameters is causing the exception, even though the Room is actually created. I don't know if you've noticed that.

In any case if you call createRoom(...) with the complete list of parameters it will go away.
For example:

Code: Select all

var room = getApi().createRoom(getParentZone(), cfg, null, false, null, true, false);
This should fix the problem you've encountered.
The parameters (in order) are:
zone -> the zone where to create the Room
cfg -> the room config
owner -> the creator of the Room (null == server)
autoJoin -> auto-join the owner upon creation
roomToLeave -> if auto-join is true you can pass another Room that the owner will leave upon auto-joining the new one
fireClientEvent-> notify the clients about the new Room
fireServerEvent-> notify other Extensions about the new Room

For more, check the documentation here:
http://docs2x.smartfoxserver.com/api-do ... FSApi.html

We'll investigate this further and release a patch as soon as possible.

Thanks
Lapo
--
gotoAndPlay()
...addicted to flash games
Post Reply