tracker + swarm combination works

This commit is contained in:
CoolElectronics 2023-08-14 21:41:05 -04:00
parent 188c4a2cfb
commit 517d190aa1
No known key found for this signature in database
GPG key ID: F63593D168636C50
4 changed files with 9 additions and 4 deletions

View file

@ -10,6 +10,7 @@ const rtcConf = {
export type Offer = { offer: any; localCandidates: any }; export type Offer = { offer: any; localCandidates: any };
export type Answer = { answer: any; candidates: any };
export class RTCTransport extends Transport { export class RTCTransport extends Transport {

View file

@ -2,10 +2,10 @@ import { getDatabase, onValue, ref, set, remove } from "firebase/database";
// import "firebase-config"; // import "firebase-config";
import { v4 as uuid } from "uuid"; import { v4 as uuid } from "uuid";
import { Offer } from "./RTCTransport"; import { Answer } from "./RTCTransport";
export async function signalSwarm(offer: string): Promise<Offer> { export async function signalSwarm(offer: string): Promise<Answer> {
let id = uuid(); let id = uuid();
const db = getDatabase(); const db = getDatabase();
let reff = ref(db, `/swarm/${id}`); let reff = ref(db, `/swarm/${id}`);
@ -25,6 +25,7 @@ export async function signalSwarm(offer: string): Promise<Offer> {
if (!text) if (!text)
return; return;
let data = JSON.parse(text); let data = JSON.parse(text);
console.log(data);
if (data.error) { if (data.error) {
reject(new Error(data.error)); reject(new Error(data.error));

View file

@ -121,8 +121,10 @@
async function connectSwarm() { async function connectSwarm() {
rtctransport = transport = createRTCTransport(); rtctransport = transport = createRTCTransport();
// let offer = await rtctransport.createOffer(); let offer = await rtctransport.createOffer();
await SignalFirebase.signalSwarm("test"); let answer = await SignalFirebase.signalSwarm(JSON.stringify(offer));
rtctransport.answer(answer.answer, answer.candidates);
} }
async function connectDevHttp() { async function connectDevHttp() {

View file

@ -55,6 +55,7 @@ reff.on("value", snapshot => {
let selectedmember = members[Math.floor(Math.random() * members.length)]; let selectedmember = members[Math.floor(Math.random() * members.length)];
selectedmember.once("message", (answer) => { selectedmember.once("message", (answer) => {
console.log("setting answer" + answer);
db.ref(`/swarm/${key}`).set(answer); db.ref(`/swarm/${key}`).set(answer);
}); });
selectedmember.send(offer); selectedmember.send(offer);