Discussion list for Unity developers.
unity-dev at moock.org
Thu Jun 7 11:50:09 CDT 2007
Perhaps your application is different than mine then, in my case, the client
doesn't need to know a list of rooms, he knows ahead of time what room he
wants to join, and will only join a single room. If you are building say a
chat client where you'd like to show the user a list of rooms, then I can
see how this could cause a problem for you
-David R
On 6/7/07, Discussion list for Unity developers. <unity-dev at moock.org>
wrote:
>
> Hi David,
>
> thanks for the reply. Calling createRoomOnServer didn't help in that
> situation because I would check to see if I had an instance to the room, and
> if not then I would create it.
>
> if (ns.getRoom(currRoom))
> {
> ns.getRoom(currRoom).join();
> }
> else
> {
> createRoomOnServer(...);
> }
>
> So even when creating the room, Unity would respond with
> ROOM_ALREADY_EXISTS, and would not add the room to the namespace room list.
>
> If you're calling createRoomOnServer on rooms that already exists you'll
> get the ROOM_ALREADY_EXISTS status message in onGetCreateRoomResults (I
> think that's the name). But that's not what's adding the room to the
> namespace room list. Unity always notifies you of the existing rooms when
> you create the namespace and that's where the room is added to the namespace
> list. So, once a room exists, there is no way (that I can see) for the
> client to specifically add the room to the namespace room list. Unity does
> that itself.
>
> Derek
>
>
> ----- Original Message ----
> From: Discussion list for Unity developers. <unity-dev at moock.org>
> To: unity-dev at moock.org
> Sent: Thursday, June 7, 2007 8:48:59 AM
> Subject: Re: ||unity-dev|| Bug? Unity wasn't reporting all the created
> rooms. Restart fixed the problem.
>
> I never noticed this issue specifically, but the way I coded my
> application
> would have avoided it anyway...basically I ALWAYS call createRoom, and if
> it's either successfull, or already exists, then I attempt to join.
>
> -David R
>
> On 6/7/07, Discussion list for Unity developers. <unity-dev at moock.org>
> wrote:
> >
> >
> >
> > Hey guys,
> >
> >
> >
> >
> >
> > I ran into another problem (bug?) with Unity the other
> > day. I've got an app that has multiple
> > chat rooms. These rooms are created dynamically and are persistent once
> > everyone leaves the room. So basically,
> > after a Unity server restart, there are no rooms yet and the first time
> > someone
> > joins a room it's created and stays around for good. So, once a client
> > connects
> > to the server and creates the namespace, Unity tells the client what
> rooms
> > exist on in that namespace.
> >
> >
> >
> >
> >
> > The problem I ran into was that Unity got into a state where about 25%
> of
> > the time the server
> > would not report all the rooms that were in that namespace.
> Specifically,
> > I had
> > the following rooms; chat, blue, red, red32, green. (I did NOT create
> the
> > rooms
> > in this order. I believe they were created in the order green, blue red,
> > chat,
> > red32.) Watching the output window in Studio 8, Unity would normally
> > report all
> > the rooms in that order every time (output below)
> >
> >
> > DEBUG: RoomManager now adding
> > NameSpace: server1
> >
> >
> > DEBUG: UClient notified of new
> > NameSpace object: 'server1'.
> >
> >
> > DEBUG: NameSpace 'server1' added
> > listener: A NamespaceView instance
> >
> >
> > DEBUG: Room factory for NameSpace
> > 'server1' set to: LocationRoomFactory
> >
> >
> > DEBUG: NameSpace 'server1'
> > notifying observers of new room: 'chat'.
> >
> >
> > DEBUG: NameSpace 'server1'
> > notifying observers of new room: 'blue'.
> >
> >
> > DEBUG: NameSpace 'server1'
> > notifying observers of new room: 'red'.
> >
> >
> > DEBUG: NameSpace 'server1'
> > notifying observers of new room: 'red32'.
> >
> >
> > DEBUG: NameSpace 'server1'
> > notifying observers of new room: 'green'.
> >
> >
> >
> >
> >
> > However, I got to a point where Unity would not report the
> > first 2 rooms; chat and blue. So it would just tell me the following
> >
> >
> > DEBUG: RoomManager now adding
> > NameSpace: server1
> >
> >
> > DEBUG: UClient notified of new
> > NameSpace object: 'server1'.
> >
> >
> > DEBUG: NameSpace 'server1' added
> > listener: A NamespaceView instance
> >
> >
> > DEBUG: Room factory for NameSpace
> > 'server1' set to: LocationRoomFactory
> >
> >
> > DEBUG: NameSpace 'server1'
> > notifying observers of new room: 'red'.
> >
> >
> > DEBUG: NameSpace 'server1'
> > notifying observers of new room: 'red32'.
> >
> >
> > DEBUG: NameSpace 'server1'
> > notifying observers of new room: 'green'.
> >
> >
> >
> >
> >
> > My code would think the chat and blue rooms hadn't been
> > created yet. So when I wanted to join one of these rooms, my code would
> > call
> > the createRoomOnServer to which Unity would reply with a
> > ROOM_ALREADY_EXISTS.
> > But… the namespace instance did not have those 2 rooms in its room list.
> > So it
> > was impossible for me to join them as I could not get an instance of the
> > rooms
> > (e.g. ns.getRoom("blue") would return null).
> >
> >
> >
> >
> >
> > Like I said this was happening about 25% of the time I
> > connected and was happening with different apps as well. So I restarted
> > the server
> > and all was well.
> >
> >
> >
> > Has anyone else
> > experienced anything like this? I'm pretty sure it was a server side
> > issue and not a flash issue because I was seeing it in multiple
> > flash apps. Is there something that would cause this? Notice I do have a
> > custom
> > URoom (Flash side, not server side). Not sure if that is relevant or
> not.
> >
> >
> >
> >
> >
> > Also, how does Unity decide what order to store these rooms
> > on the server? If I create rooms in the
> > order green, blue, red, the next time I run the app and create the
> > namespace,
> > Unity always reports back with the rooms in the order blue, red, green.
> > i.e.
> >
> >
> > DEBUG: NameSpace 'server1'
> > notifying observers of new room: 'blue'.
> >
> >
> > DEBUG: NameSpace 'server1'
> > notifying observers of new room: 'red'.
> >
> >
> > DEBUG: NameSpace 'server1'
> > notifying observers of new room: 'green'.
> >
> >
> >
> >
> >
> > Sorry, for the super long email
> > but I would appreciate any input as this would be a big problem for me
> if
> > it
> > happens regularly.
> >
> >
> >
> >
> >
> >
> > Thanks,
> > Derek
> >
> >
> >
> > --
> > you're a unity-dev subscriber. to unsubscribe, visit
> > www.moock.org/mailman/listinfo/unity-dev/
> >
> > superb hosting for this list and moock.org is generously provided by
> > Rackspace. See: http://www.rackspace.com/?supbid=moock
> >
> --
> you're a unity-dev subscriber. to unsubscribe, visit
> www.moock.org/mailman/listinfo/unity-dev/
>
> superb hosting for this list and moock.org is generously provided by
> Rackspace. See: http://www.rackspace.com/?supbid=moock
>
>
>
>
> --
> you're a unity-dev subscriber. to unsubscribe, visit
> www.moock.org/mailman/listinfo/unity-dev/
>
> superb hosting for this list and moock.org is generously provided by
> Rackspace. See: http://www.rackspace.com/?supbid=moock
>