← Cloudflare Realtime / realtime / realtimekit
Vytváření pomocí Core SDK
Inicializujte Core SDK
Abyste mohli Core SDK integrovat, musíte ho inicializovat pomocí autentizační token účastníka, a poté pomocí poskytnutých SDK API ovládejte peer v relaci.
Inicializace se může mírně lišit v závislosti na vašem tech stacku. Níže si vyberte svůj preferovaný tech stack.
Nainstalujte klientský SDK
npm i @cloudflare/realtimekit-reactPoužijte useRealtimeKitClient hook k inicializaci SDK.
import { useEffect } from 'react';
import { useRealtimeKitClient } from '@cloudflare/realtimekit-react';
export default function App() {
const [meeting, initMeeting] = useRealtimeKitClient();
useEffect(() => {
const meetingDefaultOptions = {
audio: true,
video: true,
};
initMeeting({
authToken: "<auth-token>",
defaults: meetingDefaultOptions, // optional
});
}, []);
useEffect(() => {
// next - if (meeting) meeting.join();
}, [meeting])
return <div></div>;
}Použijte Přidání účastníka (API) a načíst tak authToken.
Nainstalujte klientský SDK.
npm i @cloudflare/realtimekitAlternativně můžete použít také CDN.
<script src="https://cdn.jsdelivr.net/npm/@cloudflare/realtimekit@latest/dist/browser.js"></script>SDK můžete inicializovat pomocí RealtimeKitClient.init.
const authToken = <auth-token>;
const meetingDefaultOptions = {
audio: true,
video: true,
};
RealtimeKitClient.init({
authToken,
defaults: meetingDefaultOptions, // optional
}).then((meeting) => {
// next - meeting.join();
});Použijte Přidání účastníka (API) a načíst tak authToken.
Nainstalujte klientský SDK.
npm i @cloudflare/realtimekit-angularSDK můžete inicializovat pomocí RealtimeKitClient.init.
class AppComponent {
title = "MyProject";
@ViewChild("myid") meetingComponent: RtkMeeting;
rtkMeeting: RealtimeKitClient;
async ngAfterViewInit() {
const meetingDefaultOptions = {
audio: true,
video: true,
};
const meeting = await RealtimeKitClient.init({
authToken: "<auth-token>",
defaults: meetingDefaultOptions, // optional
});
// next - meeting.join();
}
}Použijte Přidání účastníka (API) a načíst tak authToken.
Inicializujte RealtimeKit SDK získáním instance RealtimeKitClient pomocí RealtimeKitMeetingBuilder pomocnou funkci.
val meeting = RealtimeKitMeetingBuilder.build(activity)Nakonfigurujte vlastnosti schůzky v RtkMeetingInfo třídu s platným účastníkem authToken z Přidání účastníka (API).
val meetingInfo =
RtkMeetingInfo(
authToken = authToken,
enableAudio = true,
enableVideo = true,
)Inicializujte schůzku zavoláním init() metodu. Tím se naváže spojení se serverem schůzky RealtimeKit.
meeting.init(
meetingInfo,
onInitCompleted = { ... },
onInitFailed = { ... },
)Inicializujte RealtimeKit SDK vytvořením instance RealtimeKitClient.
let meeting = RealtimeKitiOSClientBuilder().build()Přidejte požadované listenery, abyste dostávali callbacky pro události schůzky.
meeting.addMeetingRoomEventListener(meetingRoomEventListener: self)
meeting.addParticipantsEventListener(participantsEventListener: self)
meeting.addSelfEventListener(selfEventListener: self)Nakonfigurujte vlastnosti schůzky v RtkMeetingInfo třídu s platným účastníkem authToken z Přidání účastníka (API).
let meetingInfo = RtkMeetingInfo(authToken: authToken,
enableAudio: true,
enableVideo: true)Inicializujte schůzku zavoláním doInit() metodu. Tím se naváže spojení se serverem schůzky RealtimeKit.
meeting.doInit(meetingInfo: meetingInfo, onSuccess: {}, onFailure: {_ in})Inicializujte RealtimeKit SDK pomocí useRealtimeKitClient hook.
import React from 'react';
import { View, Text } from 'react-native';
import { useRealtimeKitClient, RealtimeKitProvider } from '@cloudflare/realtimekit-react-native';
export default function App() {
const [meeting, initMeeting] = useRealtimeKitClient();
React.useEffect(() => {
const init = async () => {
const meetingOptions = {
audio: true,
video: true,
};
await initMeeting({
authToken: 'YourAuthToken',
defaults: meetingOptions,
});
};
init();
// next - if (meeting) meeting.joinRoom();
}, []);
if (meeting) {
return (
<RealtimeKitProvider value={meeting}>
{/* Render your components here */}
</RealtimeKitProvider>
);
} else {
return (
<View>
<Text>Loading...</Text>
<View>
)
}
}Použijte Přidání účastníka (API) a načíst tak authToken.
Advanced Options
Můžete volitelně nastavíte výchozí hodnoty schůzky, kvalitu médií, předvolby sdílení obrazovky, nastavení simulcastu, chování ICE připojení, logování a zpracování chyb při inicializaci SDK.
init({
authToken: "<auth_token>",
defaults: {
video: true,
audio: true,
mediaConfiguration: {
// Configure custom video quality (e.g., 1080p). Disable simulcast using `simulcastConfig` override for single-layer streaming.
video: {
width: { ideal: 1920 },
height: { ideal: 1080 },
frameRate: { ideal: 15 },
},
screenshare: {
frameRate: { ideal: 15, max: 30 }, // Default 5
displaySurface: "monitor", // Given surface is suggested to the end user
},
},
},
overrides: {
simulcastConfig: {
// If you want to disable simulcast
disable: false,
// If you want to pass custom simulcast encodings
encodings: [
{
rid: "f", // full / highest quality
scaleResolutionDownBy: 1.0,
maxBitrate: 2500000, // ~2.5 Mbps
},
{
rid: "h", // half
scaleResolutionDownBy: 2.0,
maxBitrate: 900000, // ~0.9 Mbps
},
{
rid: "q", // quarter
scaleResolutionDownBy: 4.0,
maxBitrate: 250000, // ~0.25 Mbps
},
],
},
forceRelay: false, // forceRelay, if true, TURN will be preferred over STUN
},
modules: {
devTools: {
logs: true, // Prints SDK logs to console, Useful in initial integration phase
},
},
onError: (error) => {
console.error(error); // SDK errors, Useful in detecting common issues
},
});Následující možnosti můžete předat jako defaults a změníte tak výchozí chování.
| Možnost | Popis | Typ | Povinné |
|---|---|---|---|
| video | Zda má být video ve výchozím nastavení povoleno | boolean |
false |
| audio | Zda má být zvuk ve výchozím nastavení povolen | boolean |
false |
| mediaConfiguration | Umožňuje předat vlastní omezení kvality médií | MediaConfiguration |
false |
| autoSwitchAudioDevice | Automatické přepnutí na nově připojený mikrofon nebo reproduktor | boolean |
false |
| isNonPreferredDevice | Umožňuje označit konkrétní zařízení jako "not preferred" | (device: MediaDeviceInfo) => boolean |
false |
| nahrávání | Umožňuje nastavit parametry nahrávání | RecordingConfig | false |
Reference k typům:
interface AudioQualityConstraints {
echoCancellation?: boolean;
noiseSuppression?: boolean;
autoGainControl?: boolean;
enableStereo?: boolean;
enableHighBitrate?: boolean;
}
interface VideoQualityConstraints {
width: { ideal: number };
height: { ideal: number };
frameRate?: { ideal: number };
}
interface ScreenshareQualityConstraints {
width?: { max: number };
height?: { max: number };
frameRate?: {
ideal: number;
max: number;
};
displaySurface?: "window" | "monitor" | "browser";
selfBrowserSurface?: "include" | "exclude";
}
interface MediaConfiguration {
video?: VideoQualityConstraints;
audio?: AudioQualityConstraints;
screenshare?: ScreenshareQualityConstraints;
}
interface RecordingConfig {
fileNamePrefix?: string;
videoConfig?: {
height?: number;
width?: number;
codec?: string;
};
}
interface DefaultOptions {
video?: boolean;
audio?: boolean;
mediaConfiguration?: MediaConfiguration;
isNonPreferredDevice?: (device: MediaDeviceInfo) => boolean;
autoSwitchAudioDevice?: boolean;
recording?: RecordingConfig;
}
interface Overrides {
simulcastConfig?: {
disable?: boolean;
encodings?: RTCRtpEncodingParameters[];
};
forceRelay?: boolean;
}Výchozí nastavení schůzky můžete nakonfigurovat pomocí enableAudio a enableVideo parametry.