When creating a room I can't set the roomOptions.
I have a IOS Swift client with photon cloud.
When I do this in connectionReturn:
let roomOptions = EGMutableRoomOptions()
roomOptions.isVisible = false
NetworkLogic?.client.opJoinOrCreateRoom("roomID", roomOptions)
The room gets created with the property .isVisible = true. Am i creating and using the EGMutableRoomOptions object correctly?
Note: After the room gets created I can change the property .isVisible to false.
Thanks,
When I do this in connectionReturn:
let roomOptions = EGMutableRoomOptions()
roomOptions.isVisible = false
NetworkLogic?.client.opJoinOrCreateRoom("roomID", roomOptions)
The room gets created with the property .isVisible = true. Am i creating and using the EGMutableRoomOptions object correctly?
Note: After the room gets created I can change the property .isVisible to false.
Thanks,
0
Best Answer
-
Hi @GreenRollingHills.
I have just realized that you are using opJoinOrCreateRoom() and not opCreateRoom().
Please be aware that in this case room options are only considered when you are actually creating a room, but ignored, when you just join an existing room.
The reason behind this is that otherwise joining players may accidentally override the options that have been set by the creating player.
So please assure that your client is actually creating the room and not just joining an existing room.
I will have a look at the upper vs lower case issue. My guess is that Apples Xcode project updater just tries to be smarter than it actually is.5
Answers
-
Hi @GreenRollingHills.
I can not reproduce your issue. I have run 2 instances of demo_loadBalancing_swift from our latest Client SDK, without any modifications except for setting a valid app ID and the room created by one instance was visible by the other instance. Afterwards I have added your code from this post to func createRoom() and one client was no longer able to see room created by the other instance, so this works as expected.
Note that it isroomOptions.IsVisible = false
starting with an upper case I and notroomOptions.isVisible = false
like in your post.0 -
HI @Kaiserludi
Thanks for your response. In my app when I tryroomOptions.IsVisible = false
with a capital I vs. lower case i my compiler gives me an error. It states "IsVisible has been renamed to isVisible". I am using Xcode 8.2.1 with Swift 3.0.2.
Note: after I create the room I do:networkLogic?.client.currentlyJoinedRoom.isVisible = false
and this works. Note the lower case i vs. uppercase I.
So, I think my error is elsewhere. I'll keep looking and I'll try the demo again.0 -
Hi @GreenRollingHills.
I have just realized that you are using opJoinOrCreateRoom() and not opCreateRoom().
Please be aware that in this case room options are only considered when you are actually creating a room, but ignored, when you just join an existing room.
The reason behind this is that otherwise joining players may accidentally override the options that have been set by the creating player.
So please assure that your client is actually creating the room and not just joining an existing room.
I will have a look at the upper vs lower case issue. My guess is that Apples Xcode project updater just tries to be smarter than it actually is.5 -
Update:
OK - it seems like Swift 3 really treats all properties as if their names would start with a lower case character, even if those properties belong to an objC API which defines them as upper case. The same for member functions and basically everything else.
I wonder what Swift does, when that objC API contains two identifiers of the same name that just differ in case...0