mirror of
https://github.com/MercuryWorkshop/adrift.git
synced 2025-05-12 22:00:02 -04:00
tracker + swarm combination works
This commit is contained in:
parent
188c4a2cfb
commit
517d190aa1
4 changed files with 9 additions and 4 deletions
|
@ -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 {
|
||||||
|
|
|
@ -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));
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue