Missing userlist update when joining a room - AS3 API
Posted: 07 Feb 2007, 20:03
I think I have uncovered a bug in AS3 client-side API.
Two users 1 and 2, three rooms A, B and C.
Both users enters room A
User 1 go to room B
User 2 go to Room C
Now Room A is empty
User 1 go to room A
The client receives the message from the server and it contains one user as expected:
[trace] [ RECEIVED ]: <msg t='sys'><body action='joinOK' r='1'><pid id='1'/><var
s /><uLs r='1'><u i='15' m='0' s='0' p='1'><n><![CDATA[guest_2968]]></n><vars><v
ar n='color' t='n'><![CDATA[16777008]]></var><var n='y' t='n'><![CDATA[-224]]></
var><var n='x' t='n'><![CDATA[66]]></var></vars></u></uLs></body></msg>, (len: 289)
The onJoinRoom event is received also as expected and I do the following:
users = evt.params.room.getUserList();
trace("Users in room " + room.getId());
for each (user in users) {
trace("user: " + user.getId());
}
Which gives me this output:
[trace] Users in room 1
[trace] user: 14
[trace] user: 15
Which is NOT at all what I expected - there should only be one user in the room. To me it looks like the client code forgets to update some internal state.
Regards
Kaare
Two users 1 and 2, three rooms A, B and C.
Both users enters room A
User 1 go to room B
User 2 go to Room C
Now Room A is empty
User 1 go to room A
The client receives the message from the server and it contains one user as expected:
[trace] [ RECEIVED ]: <msg t='sys'><body action='joinOK' r='1'><pid id='1'/><var
s /><uLs r='1'><u i='15' m='0' s='0' p='1'><n><![CDATA[guest_2968]]></n><vars><v
ar n='color' t='n'><![CDATA[16777008]]></var><var n='y' t='n'><![CDATA[-224]]></
var><var n='x' t='n'><![CDATA[66]]></var></vars></u></uLs></body></msg>, (len: 289)
The onJoinRoom event is received also as expected and I do the following:
users = evt.params.room.getUserList();
trace("Users in room " + room.getId());
for each (user in users) {
trace("user: " + user.getId());
}
Which gives me this output:
[trace] Users in room 1
[trace] user: 14
[trace] user: 15
Which is NOT at all what I expected - there should only be one user in the room. To me it looks like the client code forgets to update some internal state.
Regards
Kaare