42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
const RelaySocket = {
|
|
async joinRtcChannel() {
|
|
await window.HybridWebView.InvokeDotNet("JoinRtcChannel");
|
|
},
|
|
|
|
async leaveRtcChannel() {
|
|
await window.HybridWebView.InvokeDotNet("LeaveRtcChannel");
|
|
},
|
|
|
|
async getRtcParticipants() {
|
|
const raw = await window.HybridWebView.InvokeDotNet("GetRtcParticipants");
|
|
|
|
if (!raw) return [];
|
|
|
|
return typeof raw === "string"
|
|
? JSON.parse(raw)
|
|
: raw;
|
|
},
|
|
|
|
async sendRtcSignal(signal) {
|
|
if (!signal.channelId) signal.channelId = currentChannelId;
|
|
if (!signal.from) signal.from = currentUsername;
|
|
|
|
await window.HybridWebView.InvokeDotNet("SendRtcSignal", [
|
|
JSON.stringify(signal)
|
|
]);
|
|
},
|
|
|
|
receiveRtcSignal(rawJson) {
|
|
if (window.RelayRtc?.handleRtcSignal) {
|
|
return window.RelayRtc.handleRtcSignal(rawJson);
|
|
}
|
|
|
|
if (typeof window.handleRtcSignal === "function") {
|
|
return window.handleRtcSignal(rawJson);
|
|
}
|
|
|
|
LogMessage("No RTC signal handler registered.");
|
|
}
|
|
};
|
|
|
|
window.RelaySocket = RelaySocket; |