CreateRoomRequest Silently Fails
Posted: 29 May 2023, 08:20
The code below seems to work fine whenever our bulk data is a reasonable size; however, when the BULK_DATA contains a lot of data the Request seems to silently fail. The server logs don't write out any errors. The client side SFSEvent.ROOM_CREATION_ERROR event doesn't trigger nor the SFSEvent.ROOM_ADD event.
The test model that I'm using adds about 25000 strings(within the UTFStringArray limits according to documents). I've tried splitting the the string array into smaller packages of 1000 and it still silently fails.
Any Ideas?
The test model that I'm using adds about 25000 strings(within the UTFStringArray limits according to documents). I've tried splitting the the string array into smaller packages of 1000 and it still silently fails.
Any Ideas?
Code: Select all
public override void CreateRoom(SessionData sessionData, List<RoomVariable> roomVariables = null, bool autoJoin = true)
{
RoomSettings settings = new Sfs2X.Requests.RoomSettings(sessionData.name);
settings.Password = sessionData.password;
settings.MaxUsers = 100;
settings.MaxSpectators = 0;
settings.IsGame = true;
settings.MaxVariables = short.MaxValue;
settings.GroupId = "reviews";
if(roomVariables != null)
{
settings.Variables = roomVariables;
}
else
{
ISFSObject modelSFSObject = new SFSObject();
modelSFSObject.PutInt(SFSVariableTypes.OBJECT_TYPE, (int)NetworkObjectID.MODEL);
modelSFSObject.PutUtfString(SFSVariableTypes.ID, sessionData.model);
modelSFSObject.PutUtfString(SFSVariableTypes.DATA, sessionData.modelUUID);
modelSFSObject.PutUtfStringArray(SFSVariableTypes.BULK_DATA, sessionData.modelParts.ToArray());
ISFSObject environmentSFSObject = new SFSObject();
environmentSFSObject.PutInt(SFSVariableTypes.OBJECT_TYPE, (int)NetworkObjectID.ENVIRONMENT);
environmentSFSObject.PutUtfString(SFSVariableTypes.ID, sessionData.environment);
environmentSFSObject.PutUtfString(SFSVariableTypes.DATA, sessionData.environmentUUID);
settings.Variables = new List<RoomVariable>()
{
new SFSRoomVariable(SFSVariableTypes.LOADED_MODEL_ID, modelSFSObject),
new SFSRoomVariable(SFSVariableTypes.LOADED_ENVIRONMENT_ID, environmentSFSObject)
};
}
SFSNetworkManager.SmartFoxServer.Send(new CreateRoomRequest(settings, autoJoin));
}