Geliştiriciler'e dön

< Flutter UIKit />

UTD Audio Room Kit

Koltuklar, gerçek zamanlı sohbet ve moderasyonla hazır canlı ses odaları.

Sürüm 1.5.0pub.dev üzerinde
iOS 11+Android 21+
audio_room_kit.dart
import 'package:utd_audio_room_kit/utd_audio_room_kit.dart';

UTDAudioRoom(
  appId: '<utd-app-id>',
  appKey: '<utd-app-key>',
  userId: 'user123',
  userName: 'John Doe',
  roomId: 'room456',
  roomOwnerId: 'owner789',
);

Drop-in

Tam arayüz

0

Backend sunucu

EN · AR

Yerleşik i18n

PiP

+ küçültme

< utd_audio_room_kit />

Öne çıkan özellikler

LiveKit ve UTD Stream Engine ile çalışan, canlı ses odası deneyimleri için eksiksiz ve özelleştirilebilir bir Flutter paketi. Koltuk yönetimi, konuşma istekleri, üye listeleri, gerçek zamanlı sohbet, medya kontrolleri, küçültme/PiP ve eksiksiz host/admin moderasyonu sunan hazır oda arayüzü — üstelik backend token sunucusuna gerek kalmadan.

Hazır ses odası arayüzü — ek kod gerektirmez

Koltuk yönetimi: oturma, ayrılma, değiştirme, kilitleme, kilit açma, atma, susturma, takas

Onayla/reddet seçenekli konuşma isteği kuyruğu

Host/admin işlemli üye listesi (susturma, atma, davet etme, yasaklama, terfi/tenzil)

Toplu işleme ve yineleme önlemeli, data-channel üzerinden gerçek zamanlı sohbet

Bluetooth önceliklendiren yönlendirmeyle mikrofon ve hoparlör kontrolleri

Kademeli yeniden bağlanma (hafif eşitleme <15s, tam eşitleme <60s)

Yüzen yer paylaşımına küçültme ve Android OS Picture-in-Picture

Tema özelleştirme ve yerleşik i18n (EN/AR)

Tüm bölümlerin değiştirilmesi (başlık, mesajlar, kontroller, arka plan, koltuklar)

Backend token sunucusu yok — appKey tabanlı token akışı

< utd_audio_room_kit />

Başlayın

1

Kurulum

Terminal
flutter pub add utd_audio_room_kit
2

pub.dev üzerinde görüntüle

Koltuklar, gerçek zamanlı sohbet ve moderasyonla hazır canlı ses odaları.

< utd_audio_room_kit />

API referansı

Main widget

The drop-in prebuilt audio-room widget that hosts the full UI and connection lifecycle.

UTDAudioRoomwidget
const UTDAudioRoom({required String appId, required String appKey, required String userId, required String userName, required String roomId, required String roomOwnerId, Set<String> adminIds, UTDAudioRoomConfig config, List<UTDRoomMode> modes, UTDRoomController? controller, ...})

Prebuilt audio-room widget. Mints a token directly from the engine with the publishable appKey (no backend), connects to LiveKit, and renders seats, chat and controls. Self-upgrades admins post-join.

Parametreler

  • appIdStringzorunlu

    UTD Stream Engine app ID.

  • appKeyStringzorunlu

    Publishable app key (no backend); used to mint tokens via X-App-Key. The server secret never ships.

  • userIdStringzorunlu

    Local user identity.

  • userNameStringzorunlu

    Local user display name.

  • roomIdStringzorunlu

    Room name to join.

  • roomOwnerIdStringzorunlu

    Identity of the room owner; the owner joins as host.

  • adminIdsSet<String>Varsayılan = const {}

    Identities the app treats as admins at join.

  • adminIdsResolverFuture<Set<String>> Function()?Varsayılan = null

    Async admin-list source; triggers a non-blocking self-upgrade if it lists the local user.

  • adminIdsNowSet<String> Function()?Varsayılan = null

    Sync admin-list probe used at token time without waiting.

  • layoutModeStringVarsayılan = '3'

    Room mode id selecting the seat layout / seat count.

  • configUTDAudioRoomConfigVarsayılan = const UTDAudioRoomConfig()

    Behavior, theming and custom-widget configuration.

  • modesList<UTDRoomMode>Varsayılan = const []

    Custom room modes registered on the controller.

  • controllerUTDRoomController?Varsayılan = null

    Optional externally-owned controller (e.g. when restoring from minimize).

  • onControllerReadyvoid Function(UTDRoomController)?Varsayılan = null

    Called once the controller is created/attached.

  • onConnectionChangedvoid Function(bool isConnected)?Varsayılan = null

    Fired on connect success/failure.

  • onSeatTapvoid Function(int index, SeatState seat)?Varsayılan = null

    Called when a seat is tapped.

  • onSeatChangedvoid Function(List<SeatState> seats)?Varsayılan = null

    Called whenever seat state changes.

  • onConnectErrorvoid Function(Object error, StackTrace)?Varsayılan = null

    Called when the initial connect fails.

Room controller

Top-level controller owning connection, sub-controllers, roles, bans and speaker flows.

UTDRoomControllerconstructor
UTDRoomController()

Creates the controller and its seat, media, chat, minimize and PiP sub-controllers. Usually created internally by UTDAudioRoom.

initApimethod
void initApi({String baseUrl, String tokenBaseUrl, String? appId, required String appKey})

Initializes the engine and token API clients. Must be called before connect/generateToken. Token issuance and in-room ops use different hosts.

Parametreler

  • baseUrlStringVarsayılan = UTDApiClient.defaultBaseUrl

    In-room engine host for seat/speaker/ban/role calls.

  • tokenBaseUrlStringVarsayılan = UTDApiClient.defaultTokenBaseUrl

    Edge host used for token generation.

  • appIdString?Varsayılan = null

    Engine app ID.

  • appKeyStringzorunlu

    Publishable app key sent as X-App-Key for minting.

connectmethodasync
Future<void> connect({required String url, required String token, int seatCount = 9, bool enableMicOnJoin = false, bool useSpeaker = true, Map<String,String> userAttributes, String? roomName})

Connects to the LiveKit room with the given url/token, initializes seats, wires data/role/ban/chat-lock handlers, and optionally enables the mic and speaker.

Parametreler

  • urlStringzorunlu

    LiveKit server URL.

  • tokenStringzorunlu

    LiveKit access token.

  • seatCountintVarsayılan = 9

    Number of seats to initialize.

  • enableMicOnJoinboolVarsayılan = false

    Publish the local mic on connect.

  • useSpeakerboolVarsayılan = true

    Prefer Bluetooth/loudspeaker output on join.

  • userAttributesMap<String,String>Varsayılan = const {}

    Cosmetic LiveKit participant attributes (avatar/frame/etc.).

  • roomNameString?Varsayılan = null

    Room name used for seat API calls.

Döndürür: Future<void>

generateTokenmethodasync
Future<UTDTokenResponse> generateToken({required String identity, required String roomName, required String roomOwnerId, String role = 'audience', String? name, int? seatCount, String? seatMode, int? hostSeat, String? modeId, ...})

Requests a LiveKit token from the engine and applies the returned per-user bearer to the in-room clients. Throws UTDBannedException on a 403 banned response.

Parametreler

  • identityStringzorunlu

    User identity.

  • roomNameStringzorunlu

    Room name.

  • roomOwnerIdStringzorunlu

    Room owner identity.

  • typeStringVarsayılan = 'audio_room'

    Room type.

  • roleStringVarsayılan = 'audience'

    Requested role (host/admin/audience).

  • nameString?Varsayılan = null

    Display name.

  • seatCountint?Varsayılan = null

    Initial seat count (host only).

  • modeIdString?Varsayılan = null

    Room mode id (host only).

Döndürür: Future<UTDTokenResponse>

leavemethodasync
Future<void> leave()

Leaves the room: tears down listeners, drains any pending mic publish, disconnects LiveKit, and resets minimize/PiP state.

Döndürür: Future<void>

changeRolemethodasync
Future<UTDRoleChangeResult> changeRole({required String targetIdentity, required String role})

Changes a participant's role (owner-only; server returns 403 otherwise). Optimistically caches the result; throws on REST error.

Parametreler

  • targetIdentityStringzorunlu

    Identity whose role changes.

  • roleStringzorunlu

    New role (host/admin/guest/audience).

Döndürür: Future<UTDRoleChangeResult>

banUsermethodasync
Future<bool> banUser(String identity, {String? reason, int? durationSeconds, bool global = false})

Bans a user. Room-scoped by default; pass global true for a project-wide ban and durationSeconds null for permanent. Returns true on success.

Parametreler

  • identityStringzorunlu

    User to ban.

  • reasonString?Varsayılan = null

    Optional ban reason.

  • durationSecondsint?Varsayılan = null

    Ban duration; null = permanent.

  • globalboolVarsayılan = false

    True for a project-wide ban.

Döndürür: Future<bool>

lockCommentsmethodasync
Future<bool> lockComments()

Locks room chat so only host/admin may send (host/admin-only). State is confirmed by the server broadcast, not set optimistically.

Döndürür: Future<bool>

requestToSpeakmethodasync
Future<Map<String,dynamic>?> requestToSpeak()

Audience requests to speak (request mode). Returns the API result map, or null on error / when not ready.

Döndürür: Future<Map<String,dynamic>?>

inviteToSpeakmethodasync
Future<Map<String,dynamic>?> inviteToSpeak(String targetIdentity, {int? seatIndex})

Host/admin invites a user to speak, optionally targeting a specific seat. Returns the API result map or null.

Parametreler

  • targetIdentityStringzorunlu

    Identity to invite.

  • seatIndexint?Varsayılan = null

    Target seat the invitee is seated on if accepted.

Döndürür: Future<Map<String,dynamic>?>

isConnectedgetter
bool get isConnected

True when the room connection state is connected.

Döndürür: bool

isHostOrAdmingetter
bool get isHostOrAdmin

Whether the local participant's role is host or admin.

Döndürür: bool

participantsStreamgetterasync
Stream<List<UTDParticipant>> get participantsStream

Stream of all room participants, emitting on join/leave/attribute/metadata changes.

Döndürür: Stream<List<UTDParticipant>>

roleChangeStreamgetterasync
Stream<UTDRoleChangeEvent> get roleChangeStream

Stream of role changes for all participants (promotions, demotions, engine auto-corrections).

Döndürür: Stream<UTDRoleChangeEvent>

activeSpeakersproperty
final ValueNotifier<Set<String>> activeSpeakers

Reactive set of identities currently speaking, polled from LiveKit every 300ms.

Döndürür: ValueNotifier<Set<String>>

commentsLockedproperty
final ValueNotifier<bool> commentsLocked

Reactive whether room chat is currently locked (server-driven; never set optimistically).

Döndürür: ValueNotifier<bool>

onBannedcallback
void Function(UTDBanNotice notice)? onBanned

Fired once when the local user is banned from any source (data message, removal, or token 403). Wired internally by UTDAudioRoom.

Döndürür: void Function(UTDBanNotice)?

disposemethod
void dispose()

Releases all resources: timers, subscriptions, notifiers, sub-controllers and API clients.

Seat & stage control

Seat state management; all mutations go through the REST API and apply from server _seat_update messages.

UTDSeatControllerclass
UTDSeatController(UTDRoomManager roomManager)

Manages reactive seat state. Mutations call the REST API; local state updates only from _seat_update data messages or room _seats metadata.

takeSeatmethodasync
Future<bool> takeSeat(int index, String userId)

Requests microphone (and Bluetooth on Android) permissions then takes the seat at index via the API. State arrives via _seat_update.

Parametreler

  • indexintzorunlu

    Target seat index.

  • userIdStringzorunlu

    Identity taking the seat.

Döndürür: Future<bool>

leaveSeatmethodasync
Future<bool> leaveSeat(String userId)

Leaves the user's current seat via the API.

Parametreler

  • userIdStringzorunlu

    Identity leaving the seat.

Döndürür: Future<bool>

moveSeatmethodasync
Future<bool> moveSeat(String userId, int targetSeat)

Atomically moves the user to another seat via the API.

Parametreler

  • userIdStringzorunlu

    Identity to move.

  • targetSeatintzorunlu

    Destination seat index.

Döndürür: Future<bool>

lockSeatmethodasync
Future<bool> lockSeat(int index, {required String identity})

Admin locks the seat at index (host/admin). State arrives via _seat_update.

Parametreler

  • indexintzorunlu

    Seat to lock.

  • identityStringzorunlu

    Acting host/admin identity.

Döndürür: Future<bool>

kickFromSeatmethodasync
Future<bool> kickFromSeat(int index, {required String identity})

Removes the occupant from the seat at index (host/admin only).

Parametreler

  • indexintzorunlu

    Seat to vacate.

  • identityStringzorunlu

    Acting host/admin identity.

Döndürür: Future<bool>

setupSeatsmethodasync
Future<bool> setupSeats({required String identity, required int seatCount, required String seatMode, String? modeId})

Changes seat configuration mid-room (count/mode/modeId) (host/admin only).

Parametreler

  • identityStringzorunlu

    Acting host/admin identity.

  • seatCountintzorunlu

    New seat count.

  • seatModeStringzorunlu

    New seat mode ('free'/'request').

  • modeIdString?Varsayılan = null

    New room mode id.

Döndürür: Future<bool>

seatsproperty
final ValueNotifier<List<SeatState>> seats

Reactive list of all seat states.

Döndürür: ValueNotifier<List<SeatState>>

pendingRequestsproperty
final ValueNotifier<List<SpeakerRequest>> pendingRequests

Reactive list of pending speaker requests (for host/admin UI).

Döndürür: ValueNotifier<List<SpeakerRequest>>

getSeatIndexByUserIdmethod
int getSeatIndexByUserId(String userId)

Returns the seat index occupied by a user, or -1 if not seated.

Parametreler

  • userIdStringzorunlu

    Identity to look up.

Döndürür: int

isSeatAvailablemethod
bool isSeatAvailable(int index, {String? userId})

Whether the seat at index is empty, unlocked and not reserved for someone else.

Parametreler

  • indexintzorunlu

    Seat index to test.

  • userIdString?Varsayılan = null

    User to evaluate reservations against.

Döndürür: bool

Media control

Mic, camera, speaker and Bluetooth-routing controls, kept in sync with server/host-side mutes.

UTDMediaControllerclass
UTDMediaController(UTDRoomManager roomManager)

Controls mic, camera and speaker state and listens to LiveKit mute/permission events to keep reactive state authoritative.

setMicrophoneEnabledmethodasync
Future<void> setMicrophoneEnabled(bool enabled)

Enables/disables the local mic. Refuses to publish on a non-connected room to avoid the addTransceiver-on-disposed-track crash.

Parametreler

  • enabledboolzorunlu

    Target mic state.

Döndürür: Future<void>

toggleMicrophonemethodasync
Future<void> toggleMicrophone()

Toggles the local microphone on/off.

Döndürür: Future<void>

applyBluetoothAudioRoutingmethodasync
Future<void> applyBluetoothAudioRouting()

Re-applies the Android communication audio config with forceHandleAudioRouting so Bluetooth routing works after connect/publish; iOS uses the AVAudioSession path.

Döndürür: Future<void>

setSpeakerOnmethodasync
Future<void> setSpeakerOn(bool on)

Routes audio to the loudspeaker (true) or earpiece (false).

Parametreler

  • onboolzorunlu

    Speakerphone on/off.

Döndürür: Future<void>

muteAllRemoteAudiomethod
void muteAllRemoteAudio(bool mute)

Mutes/unmutes playback of all remote participants' audio (and enforces it on late-subscribed tracks).

Parametreler

  • muteboolzorunlu

    Whether to mute remote audio.

isMicEnabledproperty
final ValueNotifier<bool> isMicEnabled

Reactive local mic state, kept in sync with LiveKit track mute/unmute events.

Döndürür: ValueNotifier<bool>

canPublishproperty
final ValueNotifier<bool> canPublish

Reactive whether the local participant may publish mic/camera; flips false on demotion.

Döndürür: ValueNotifier<bool>

Chat

Room chat send/receive with comment-lock gating and a bounded message buffer.

UTDChatControllerclass
UTDChatController(UTDRoomManager roomManager)

Sends and receives room chat over the data channel, enforcing the comment-lock gate and capping retained messages at 300.

sendMessagemethodasync
Future<void> sendMessage(String text, {Map<String,dynamic>? userData})

Sends a chat message (trimmed, non-empty). Refused when comments are locked and the local user is not host/admin.

Parametreler

  • textStringzorunlu

    Message body.

  • userDataMap<String,dynamic>?Varsayılan = null

    Optional extra payload attached to the message.

Döndürür: Future<void>

addDisplayMessagemethod
void addDisplayMessage(UTDChatMessage message)

Appends a message to the local list without sending it (used for system lines).

Parametreler

  • messageUTDChatMessagezorunlu

    Message to display locally.

clearMessagesmethod
void clearMessages()

Clears the local message list.

messagesproperty
final ValueNotifier<List<UTDChatMessage>> messages

Reactive list of chat messages (bounded to the most recent 300).

Döndürür: ValueNotifier<List<UTDChatMessage>>

Configuration & theming

Behavior config, color tokens, localized strings and minimize/PiP options.

UTDAudioRoomConfigconstructor
const UTDAudioRoomConfig({bool showControlsBar = true, bool turnOnMicrophoneWhenJoining = false, bool useSpeakerWhenJoining = true, int hostSeatIndex = 0, UTDRoomTheme theme, UTDRoomStrings? strings, bool enableMinimize = true, Widget? headerWidget, ...})

Configures room behavior, theme, strings and custom section/seat builders. Replaces the prebuilt config.

Parametreler

  • showControlsBarboolVarsayılan = true

    Show the default controls bar.

  • showSeatNamesboolVarsayılan = true

    Show occupant names under seats.

  • enableMinimizeboolVarsayılan = true

    Allow minimizing the room to a floating overlay.

  • turnOnMicrophoneWhenJoiningboolVarsayılan = false

    Publish the mic on join.

  • useSpeakerWhenJoiningboolVarsayılan = true

    Prefer speaker/Bluetooth output on join.

  • hostSeatIndexintVarsayılan = 0

    Seat index reserved for the host.

  • themeUTDRoomThemeVarsayılan = const UTDRoomTheme()

    Color tokens for the default UI.

  • stringsUTDRoomStrings?Varsayılan = null

    Localized strings; null = English defaults.

  • autoHostMicboolVarsayılan = true

    Auto-enable the host's mic even if join-mic is false.

  • autoSeatHostboolVarsayılan = true

    Auto-seat the host on hostSeatIndex if empty.

  • headerWidgetWidget?Varsayılan = null

    Custom header replacing the default.

  • seatBuilderWidget Function(SeatState, double)?Varsayılan = null

    Custom builder for a seat slot.

  • avatarBuilderWidget Function(String,double,Map<String,String>,bool,int,String)?Varsayılan = null

    Custom occupant avatar builder.

  • userInRoomAttributesMap<String,String>Varsayılan = const {}

    Cosmetic attributes published to other participants.

UTDAudioRoomConfig.hostconstructor
factory UTDAudioRoomConfig.host()

Factory preset for a host (microphone on when joining).

resolveStringsmethod
UTDRoomStrings resolveStrings()

Returns the configured strings or the English defaults.

Döndürür: UTDRoomStrings

UTDRoomThemeconstructor
const UTDRoomTheme({Color background, Color surface, Color onSurface, Color primary, Color danger, Color seatRingSpeaking, Color badgeHost, Color badgeAdmin, Color badgeGuest, Color sheetBackground, Color bubbleBackground, ...})

Color tokens for the built-in default UI. Every field has a dark-room default, so const UTDRoomTheme() is a complete theme.

Parametreler

  • backgroundColorVarsayılan = Color(0xFF14121C)

    Full-screen room background.

  • primaryColorVarsayılan = Color(0xFF6C5CE7)

    Accent / call-to-action color.

  • dangerColorVarsayılan = Color(0xFFE74C3C)

    Destructive color (leave/kick/ban).

  • seatRingSpeakingColorVarsayılan = Color(0xFF2ECC71)

    Ring around an actively-speaking seat.

  • badgeHostColorVarsayılan = Color(0xFFFFA726)

    Host role badge color.

  • badgeAdminColorVarsayılan = Color(0xFF448AFF)

    Admin role badge color.

copyWithmethod
UTDRoomTheme copyWith({Color? background, Color? primary, Color? danger, ...})

Returns a copy of the theme overriding only the supplied color tokens.

Döndürür: UTDRoomTheme

UTDRoomStrings.enconstructor
factory UTDRoomStrings.en()

English defaults for all built-in UI labels (seat actions, requests, host panels, comment-lock, templated lines).

UTDRoomStrings.arconstructor
factory UTDRoomStrings.ar()

Arabic defaults for all built-in UI labels.

UTDMinimizeConfigconstructor
const UTDMinimizeConfig({VoidCallback? onClose, MiniOverlayBuilder? overlayBuilder, double overlayWidth = 120, double overlayHeight = 120, bool enableOSPip = false, int pipAspectWidth = 1, int pipAspectHeight = 1, ...})

Configures the minimize floating overlay and optional Android OS-level Picture-in-Picture (enableOSPip).

Parametreler

  • onCloseVoidCallback?Varsayılan = null

    Called when the room is closed from the overlay.

  • overlayBuilderMiniOverlayBuilder?Varsayılan = null

    Custom floating-overlay builder.

  • enableOSPipboolVarsayılan = false

    Enable Android 12+ system PiP in addition to the overlay.

  • pipAspectWidthintVarsayılan = 1

    PiP aspect ratio numerator.

  • pipAspectHeightintVarsayılan = 1

    PiP aspect ratio denominator.

Models & enums

Data models for seats, room modes, chat and connection state.

SeatStateclass
const SeatState({required int index, String? occupantUserId, bool isLocked = false, bool isMuted = false, String? reservedFor, Map<String,String> attributes})

Immutable (Equatable) state of a single seat: index, occupant, lock/mute flags, reservation and occupant attributes.

Parametreler

  • indexintzorunlu

    Seat index (0 = host seat).

  • occupantUserIdString?Varsayılan = null

    Occupant identity; null = empty.

  • isLockedboolVarsayılan = false

    Whether the seat is admin-locked.

  • isMutedboolVarsayılan = false

    Whether the occupant's mic is muted.

  • reservedForString?Varsayılan = null

    Identity this seat is reserved for.

  • attributesMap<String,String>Varsayılan = const {}

    Occupant cosmetic attributes (avatar, frame, etc.).

SpeakerRequestclass
const SpeakerRequest({required int id, required String identity, String? createdAt})

A pending request to speak: id, requester identity and createdAt timestamp.

Parametreler

  • idintzorunlu

    Request id.

  • identityStringzorunlu

    Requesting identity.

  • createdAtString?Varsayılan = null

    Creation timestamp.

RoomSeatStateclass
const RoomSeatState({required int count, required String mode, String? modeId, required List<SeatState> seats, required List<SpeakerRequest> requests})

Full seat snapshot from the backend _seats namespace: count, mode, modeId, seats and pending requests.

Parametreler

  • countintzorunlu

    Seat count.

  • modeStringzorunlu

    Seat mode ('free'/'request').

  • modeIdString?Varsayılan = null

    Room mode id.

  • seatsList<SeatState>zorunlu

    Per-seat states.

  • requestsList<SpeakerRequest>zorunlu

    Pending speaker requests.

UTDRoomModeclass
const UTDRoomMode({required String id, required int seatCount, required List<List<int>> rows, double? seatSize, UTDSeatContainerBuilder? containerBuilder, UTDBackgroundBuilder? backgroundBuilder, String? displayName})

Defines a seat layout mode: id, seat count, row arrangement and optional custom container/background builders. Identity is its id.

Parametreler

  • idStringzorunlu

    Unique mode id (e.g. '3').

  • seatCountintzorunlu

    Number of seats.

  • rowsList<List<int>>zorunlu

    Seat-index layout per row.

  • seatSizedouble?Varsayılan = null

    Explicit seat size override.

  • containerBuilderUTDSeatContainerBuilder?Varsayılan = null

    Custom seat-grid container builder.

  • backgroundBuilderUTDBackgroundBuilder?Varsayılan = null

    Mode-specific background builder.

computeSeatSizemethod
double computeSeatSize(double screenWidth)

Single source of truth for the seat slot size in logical px, scaled sub-linearly (sqrt) with screen width and clamped to 52–120.

Parametreler

  • screenWidthdoublezorunlu

    Available screen width.

Döndürür: double

UTDRoomMode.defaultModefield
static const UTDRoomMode defaultMode

Built-in default mode: id '3', 9 seats in a 1-4-4 layout.

Döndürür: UTDRoomMode

UTDChatMessageclass
UTDChatMessage({required String senderUserId, required String senderName, required String text, required DateTime timestamp, Map<String,dynamic> userData, String? messageID})

A chat message with sender, text, timestamp, arbitrary userData and an auto-generated messageID. JSON-serializable.

Parametreler

  • senderUserIdStringzorunlu

    Sender identity.

  • senderNameStringzorunlu

    Sender display name.

  • textStringzorunlu

    Message body.

  • timestampDateTimezorunlu

    Message time.

  • userDataMap<String,dynamic>Varsayılan = const {}

    Extra payload (e.g. system-line markers).

  • messageIDString?Varsayılan = null

    Message id; auto-generated when omitted.

UTDConnectionStateenum
enum UTDConnectionState { disconnected, connecting, connected, reconnecting, error }

Room connection state: disconnected, connecting, connected, reconnecting, error.

Döndürür: UTDConnectionState

UTD ile inşa etmeye hazır mısınız?

Hesabınızı oluşturun, ana cüzdanınızı fonlayın ve ihtiyacınız olan hizmetleri açın.