Create room from Serverside in SFS2x
Create room from Serverside in SFS2x
Hi,
I am a new in Java.
I want to create Room from Serverside with below properties.
// Flex Code bellow
var settings:SFSGameSettings = new SFSGameSettings("gameRoom1");
settings.maxUsers = 2;
settings.maxSpectators = 10;
settings.isPublic = true;
settings.minPlayersToStartGame = 2;
settings.notifyGameStarted = true;
settings.leaveLastJoinedRoom = false;
settings.extension = new RoomExtension("sfsGame", "sfs2x.extensions.games.pingPong.SFSPingPong");
// Create some Room Variables
var roomVars:Array = [];
roomVars.push(new SFSRoomVariable("gameStarted", false));
roomVars.push(new SFSRoomVariable("gameType", "Ping"));
roomVars.push(new SFSRoomVariable("minRank", 10));
roomVars.push(new SFSRoomVariable("type", "fun"));
roomVars.push(new SFSRoomVariable("desc", " game, public, bestScore > 100"));
settings.variables = roomVars;
sfs.send(new CreateSFSGameRequest(settings));
I am trying to create Room in server side(Java).
Please help how to create Room with Extenstion and RoomVariables with Global Flag set to true in Java.
Thanks in Advance
Krishsalt.
I am a new in Java.
I want to create Room from Serverside with below properties.
// Flex Code bellow
var settings:SFSGameSettings = new SFSGameSettings("gameRoom1");
settings.maxUsers = 2;
settings.maxSpectators = 10;
settings.isPublic = true;
settings.minPlayersToStartGame = 2;
settings.notifyGameStarted = true;
settings.leaveLastJoinedRoom = false;
settings.extension = new RoomExtension("sfsGame", "sfs2x.extensions.games.pingPong.SFSPingPong");
// Create some Room Variables
var roomVars:Array = [];
roomVars.push(new SFSRoomVariable("gameStarted", false));
roomVars.push(new SFSRoomVariable("gameType", "Ping"));
roomVars.push(new SFSRoomVariable("minRank", 10));
roomVars.push(new SFSRoomVariable("type", "fun"));
roomVars.push(new SFSRoomVariable("desc", " game, public, bestScore > 100"));
settings.variables = roomVars;
sfs.send(new CreateSFSGameRequest(settings));
I am trying to create Room in server side(Java).
Please help how to create Room with Extenstion and RoomVariables with Global Flag set to true in Java.
Thanks in Advance
Krishsalt.
-
ThomasLund
- Posts: 1297
- Joined: 14 Mar 2008, 07:52
- Location: Sweden
Hi,
I just need to ask. Are you client side or server side? Because this part of the forum is about client side Java API. The server side stuff is at this part:
http://forums.smartfoxserver.com/viewforum.php?f=18
Anyways - client side code snippet:
/Thomas
I just need to ask. Are you client side or server side? Because this part of the forum is about client side Java API. The server side stuff is at this part:
http://forums.smartfoxserver.com/viewforum.php?f=18
Anyways - client side code snippet:
Code: Select all
RoomSettings roomSettings = new RoomSettings(roomName);
CreateRoomRequest req = new CreateRoomRequest(roomSettings, false);
sfs1.send(req);
Full Control - maker of Unity/C# and Java SFS API and indie games
Follow on twitter: http://twitter.com/thomas_h_lund
Follow on twitter: http://twitter.com/thomas_h_lund
-
arunkumar624
- Posts: 7
- Joined: 10 Feb 2012, 04:01
creating dynamic rooms and joining the user in that room
As i am new to SmartFoxServer I need help in the server side coding.I hope you will help
The below is my scenario
1.There is one zone and one default room(manually i created) in that zone in Admin panel.
2.The users from client side(Action script) want to play the game when he loads the game I need to do below steps
a)I want handle login request from the client
b)After handling login request i want to check the default room is full or not which i created in Admin panel, if it is full i need to create a new dynamic room and join the new user to the newly created room and have to send response to the client(tell me what response i have to send to client). 3)I need the server side (i.e:java) coding for the above scenario and what are the necessary steps to be followed by the client.
The below is my scenario
1.There is one zone and one default room(manually i created) in that zone in Admin panel.
2.The users from client side(Action script) want to play the game when he loads the game I need to do below steps
a)I want handle login request from the client
b)After handling login request i want to check the default room is full or not which i created in Admin panel, if it is full i need to create a new dynamic room and join the new user to the newly created room and have to send response to the client(tell me what response i have to send to client). 3)I need the server side (i.e:java) coding for the above scenario and what are the necessary steps to be followed by the client.
-
itsmylifesoham
- Posts: 186
- Joined: 16 Oct 2011, 14:33
Re: creating dynamic rooms and joining the user in that room
step 1 : send login request to the zone from client.arunkumar624 wrote:As i am new to SmartFoxServer I need help in the server side coding.I hope you will help
The below is my scenario
1.There is one zone and one default room(manually i created) in that zone in Admin panel.
2.The users from client side(Action script) want to play the game when he loads the game I need to do below steps
a)I want handle login request from the client
b)After handling login request i want to check the default room is full or not which i created in Admin panel, if it is full i need to create a new dynamic room and join the new user to the newly created room and have to send response to the client(tell me what response i have to send to client). 3)I need the server side (i.e:java) coding for the above scenario and what are the necessary steps to be followed by the client.
step 2 : lets say the one default room that already is there has name "MyFirstRoom". in the zone login handler if the user is successfully authenticated, then at the end of this handler you have to make a check if the "MyFirstRoom" is full or not.
so do
Code: Select all
Room myfirstroom = getParentExtension().getParentZone().getRoomByName("MyFirstRoom");
if(!myfirstroom.isfull())
getApi().joinRoom(((SFSUser) event.getParameter(SFSEventParam.USER)), myfirstroom )
else
{
Room newRoom = getApi().createroom(<please see how to pass the roomsettings parameters in the api documentation>);
getApi().joinRoom(((SFSUser) event.getParameter(SFSEventParam.USER)), newRoom ) ;
}
hope it gives some idea.
Re: Create room from Serverside in SFS2x
Multiple users sent a request to join the room. We need to create a room and join all the users in new room
How should I limit the access for the room creation not to get a several rooms instead of single?
I use for name room = "room_"+count rooms in group rooms
How should I limit the access for the room creation not to get a several rooms instead of single?
I use for name room = "room_"+count rooms in group rooms
Re: Create room from Serverside in SFS2x
It is not clear. Can you please explain exactly what you need to do?
Give us a step by step description please
Give us a step by step description please
Re: Create room from Serverside in SFS2x
1. 4 users want to enter the room that belongs to a group of rooms "group_1"
2. Each user sends request to the server with the parameter "group_1"
3. The server is trying to get the room (not private and the number of users is less than maximum) from the group "group_1"
4. If there's no such room in the group "group_1", the server calls the method that creates a new room in the group "group_1".
5. After the room creation, server should connect all the users who have sent a request to the new room
6. Also I need to pick up the part of users from the full room and in 5 seconds move them into the new one. (I use sfs.getTaskScheduler().schedule(new Task(), ), but I don't get extension in class Task for getApi().joinRoom()
How can I avoid the execute of 4th paragraph? The server should set up only one room instead of four.
From 3rd till 6 paragraph all actions must be thread-safe because otherwise may be the unpredictable result.
2. Each user sends request to the server with the parameter "group_1"
3. The server is trying to get the room (not private and the number of users is less than maximum) from the group "group_1"
4. If there's no such room in the group "group_1", the server calls the method that creates a new room in the group "group_1".
5. After the room creation, server should connect all the users who have sent a request to the new room
6. Also I need to pick up the part of users from the full room and in 5 seconds move them into the new one. (I use sfs.getTaskScheduler().schedule(new Task(), ), but I don't get extension in class Task for getApi().joinRoom()
How can I avoid the execute of 4th paragraph? The server should set up only one room instead of four.
From 3rd till 6 paragraph all actions must be thread-safe because otherwise may be the unpredictable result.
-
itsmylifesoham
- Posts: 186
- Joined: 16 Oct 2011, 14:33
Re: Create room from Serverside in SFS2x
set_a wrote:1. 4 users want to enter the room that belongs to a group of rooms "group_1"
2. Each user sends request to the server with the parameter "group_1"
3. The server is trying to get the room (not private and the number of users is less than maximum) from the group "group_1"
4. If there's no such room in the group "group_1", the server calls the method that creates a new room in the group "group_1".
5. After the room creation, server should connect all the users who have sent a request to the new room
6. Also I need to pick up the part of users from the full room and in 5 seconds move them into the new one. (I use sfs.getTaskScheduler().schedule(new Task(), ), but I don't get extension in class Task for getApi().joinRoom()
How can I avoid the execute of 4th paragraph? The server should set up only one room instead of four.
From 3rd till 6 paragraph all actions must be thread-safe because otherwise may be the unpredictable result.
hi set_a,
maybe this post from before can help regarding your thread-safety requirement query :
http://forums.smartfoxserver.com/viewto ... afe#p52465
Also to access extension from the Task class you could do one of the two that i use :
1. declare the Task class as an inner private class inside an extension. you can see it in action here :
http://docs2x.smartfoxserver.com/Advanc ... hreadModel
just go to the part where they show how to write a scheduler.
from an inner class you can access all the methods and properies of your extension which includes getapi().joinroom etc.
2. if you are having your task class declared separately elsewhere, just put "getapi()" as the constructor argument for that task.
eg:
taskHandle = sfs.getTaskScheduler().scheduleAtFixedRate(new TaskRunner(getapi()), 0, 1, TimeUnit.SECONDS);
now in your task class you can utilise the api.
Re: Create room from Serverside in SFS2x
Thanks you very much for your answer 