joinRoom method
Future<WhiteRoom>
joinRoom({
- required RoomOptions options,
- RoomStateChangedCallback? onRoomStateChanged,
- RoomPhaseChangedCallback? onRoomPhaseChanged,
- RoomDisconnectedCallback? onRoomDisconnected,
- RoomKickedCallback? onRoomKicked,
- UndoStepsUpdatedCallback? onCanUndoStepsUpdate,
- RedoStepsUpdatedCallback? onCanRedoStepsUpdate,
- RoomErrorCallback? onRoomError,
Implementation
Future<WhiteRoom> joinRoom({
required RoomOptions options,
RoomStateChangedCallback? onRoomStateChanged,
RoomPhaseChangedCallback? onRoomPhaseChanged,
RoomDisconnectedCallback? onRoomDisconnected,
RoomKickedCallback? onRoomKicked,
UndoStepsUpdatedCallback? onCanUndoStepsUpdate,
RedoStepsUpdatedCallback? onCanRedoStepsUpdate,
RoomErrorCallback? onRoomError,
}) {
var completer = Completer<WhiteRoom>();
var room = WhiteRoom(
dsBridge: dsBridge,
options: options,
onRoomStateChanged: onRoomStateChanged,
onRoomPhaseChanged: onRoomPhaseChanged,
onRoomDisconnected: onRoomDisconnected,
onRoomKicked: onRoomKicked,
onCanUndoStepsUpdate: onCanUndoStepsUpdate,
onCanRedoStepsUpdate: onCanRedoStepsUpdate,
onRoomError: onRoomError,
);
dsBridge.callHandler("sdk.joinRoom", [options.toJson()], ([value]) {
var error = WhiteException.parseValueError(value);
if (error == null) {
room._initRoomState(jsonDecode(value));
completer.complete(room);
} else {
completer.completeError(error);
}
});
return completer.future;
}