@@ -125,28 +125,28 @@ public Room ReJoin (string roomName, string sessionId)
125
125
return this . Join ( roomName , options ) ;
126
126
}
127
127
128
- // /// <summary>
129
- // /// Request <see cref="Client"/> to join in a <see cref="Room"/>.
130
- // /// </summary>
131
- // /// <param name="roomName">The name of the Room to join.</param>
132
- // /// <param name="callback">Callback to receive list of available rooms</param>
133
- // public void GetAvailableRooms (string roomName, Action<RoomAvailable[]> callback)
134
- // {
135
- // int requestId = ++this.requestId;
136
- // this.connection.Send (new object[]{Protocol.ROOM_LIST, requestId, roomName});
137
- //
138
- // this.roomsAvailableRequests.Add (requestId, callback);
139
- //
140
- // // // USAGE
141
- // // this.client.GetAvailableRooms ("chat", (RoomAvailable[] obj) => {
142
- // // for (int i = 0; i < obj.Length; i++) {
143
- // // Debug.Log (obj [i].roomId);
144
- // // Debug.Log (obj [i].clients);
145
- // // Debug.Log (obj [i].maxClients);
146
- // // Debug.Log (obj [i].metadata);
147
- // // }
148
- // });
149
- // }
128
+ /// <summary>
129
+ /// Request <see cref="Client"/> to join in a <see cref="Room"/>.
130
+ /// </summary>
131
+ /// <param name="roomName">The name of the Room to join.</param>
132
+ /// <param name="callback">Callback to receive list of available rooms</param>
133
+ public void GetAvailableRooms ( string roomName , Action < RoomAvailable [ ] > callback )
134
+ {
135
+ int requestId = ++ this . requestId ;
136
+ this . connection . Send ( new object [ ] { Protocol . ROOM_LIST , requestId , roomName } ) ;
137
+
138
+ this . roomsAvailableRequests . Add ( requestId , callback ) ;
139
+
140
+ // // USAGE
141
+ // this.client.GetAvailableRooms ("chat", (RoomAvailable[] obj) => {
142
+ // for (int i = 0; i < obj.Length; i++) {
143
+ // Debug.Log (obj [i].roomId);
144
+ // Debug.Log (obj [i].clients);
145
+ // Debug.Log (obj [i].maxClients);
146
+ // Debug.Log (obj [i].metadata);
147
+ // }
148
+ // });
149
+ }
150
150
151
151
/// <summary>
152
152
/// Close <see cref="Client"/> connection and leave all joined rooms.
@@ -214,11 +214,20 @@ private void ParseMessage (byte[] recv)
214
214
if ( this . OnError != null )
215
215
this . OnError . Invoke ( this , new ErrorEventArgs ( ( string ) message [ 2 ] ) ) ;
216
216
217
- // } else if (code == Protocol.ROOM_LIST) {
218
- // var requestId = Convert.ToInt32(message[1]);
219
- // var rooms = (RoomAvailable[]) Convert.ChangeType(message[2], roomsAvailableResponse.GetType());
220
- // this.roomsAvailableRequests [requestId].Invoke (rooms);
221
- // this.roomsAvailableRequests.Remove (requestId);
217
+ } else if ( code == Protocol . ROOM_LIST ) {
218
+
219
+ var requestId = Convert . ToInt32 ( message [ 1 ] ) ;
220
+ List < object > _rooms = ( List < object > ) message [ 2 ] ;
221
+ RoomAvailable [ ] rooms = new RoomAvailable [ _rooms . Count ] ;
222
+
223
+ for ( int i = 0 ; i < _rooms . Count ; i ++ ) {
224
+ IDictionary < string , object > room = ( IDictionary < string , object > ) _rooms [ i ] ;
225
+ RoomAvailable _room = ObjectExtensions . ToObject < RoomAvailable > ( _rooms [ i ] ) ;
226
+ rooms [ i ] = _room ;
227
+ }
228
+
229
+ this . roomsAvailableRequests [ requestId ] . Invoke ( rooms ) ;
230
+ this . roomsAvailableRequests . Remove ( requestId ) ;
222
231
223
232
} else {
224
233
if ( this . OnMessage != null )
0 commit comments