mirror of
https://github.com/MercuryWorkshop/adrift.git
synced 2025-05-12 22:00:02 -04:00
add back dev WS transport
This commit is contained in:
parent
1613ed38f3
commit
76659f0fa5
18 changed files with 68 additions and 44 deletions
|
@ -1,4 +1,8 @@
|
|||
<script lang="ts">
|
||||
import {
|
||||
registerRemoteListener,
|
||||
setBareClientImplementation,
|
||||
} from "bare-client-custom";
|
||||
import {
|
||||
AdriftBareClient,
|
||||
Connection,
|
||||
|
@ -7,55 +11,55 @@
|
|||
} from "client";
|
||||
// note: even though we import firebase, due to the tree shaking, it will only run if we use "auth" so if ADRIFT_DEV is set it won't import
|
||||
import { auth } from "firebase-config";
|
||||
import type { Transport } from "protocol";
|
||||
import {
|
||||
registerRemoteListener,
|
||||
setBareClientImplementation,
|
||||
} from "bare-client-custom";
|
||||
import { signInWithEmailAndPassword } from "firebase/auth";
|
||||
import { getDatabase, onValue, ref, set } from "firebase/database";
|
||||
import type { Transport } from "protocol";
|
||||
|
||||
let transport: Transport;
|
||||
|
||||
let wstransport: DevWsTransport | undefined;
|
||||
let rtctransport: RTCTransport | undefined;
|
||||
if (import.meta.env.VITE_ADRIFT_DEV) {
|
||||
console.log(
|
||||
"%cADRIFT RUNNING IN DEVELOPMENT MODE",
|
||||
"background: blue; color: white; font-size: x-large"
|
||||
);
|
||||
transport = new DevWsTransport(
|
||||
() => console.log("onopen"),
|
||||
() => console.log("onclose")
|
||||
);
|
||||
} else {
|
||||
console.log(
|
||||
"%cADRIFT RUNNING IN PRODUCTION MODE",
|
||||
"background: blue; color: white; font-size: x-large"
|
||||
);
|
||||
}
|
||||
|
||||
if (!import.meta.env.VITE_ADRIFT_SINGLEFILE) {
|
||||
console.log("registering bare-client-custom");
|
||||
registerRemoteListener();
|
||||
}
|
||||
|
||||
function onTransportOpen() {
|
||||
console.log("Transport opened");
|
||||
|
||||
let connection = new Connection(transport);
|
||||
let bare = new AdriftBareClient(connection);
|
||||
setBareClientImplementation(bare);
|
||||
}
|
||||
|
||||
function createRTCTransport() {
|
||||
rtctransport = transport = new RTCTransport(
|
||||
console.log,
|
||||
() => {
|
||||
// rtc.dataChannel.send("test message");
|
||||
// let client = new AdriftBareClient;
|
||||
// setBareClientImplementation(client);
|
||||
//
|
||||
},
|
||||
onTransportOpen,
|
||||
onTransportClose,
|
||||
console.log,
|
||||
console.log,
|
||||
console.log
|
||||
);
|
||||
}
|
||||
|
||||
let connection = new Connection(transport);
|
||||
|
||||
let bare = new AdriftBareClient(connection);
|
||||
setBareClientImplementation(bare);
|
||||
if (!import.meta.env.VITE_ADRIFT_SINGLEFILE) {
|
||||
console.log("registering bare-client-custom");
|
||||
registerRemoteListener();
|
||||
function onTransportClose() {
|
||||
console.warn("Transport closed");
|
||||
}
|
||||
|
||||
async function connectFirebase() {
|
||||
if (!rtctransport) return;
|
||||
createRTCTransport();
|
||||
|
||||
let creds = await signInWithEmailAndPassword(
|
||||
auth,
|
||||
|
@ -79,14 +83,15 @@
|
|||
if (data && data.answer && data.candidates) {
|
||||
set(peer, null);
|
||||
const { answer, candidates } = data;
|
||||
rtctransport?.answer(answer, candidates);
|
||||
rtctransport.answer(answer, candidates);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async function connectDevHttp() {
|
||||
let offer = await rtctransport?.createOffer();
|
||||
createRTCTransport();
|
||||
let offer = await rtctransport.createOffer();
|
||||
console.log("offer created", offer);
|
||||
console.log(JSON.stringify(offer));
|
||||
|
||||
|
@ -99,14 +104,23 @@
|
|||
throw new Error("connect: " + r.status + " " + r.statusText);
|
||||
}
|
||||
const { answer, candidates } = await r.json();
|
||||
await rtctransport?.answer(answer, candidates);
|
||||
await rtctransport.answer(answer, candidates);
|
||||
}
|
||||
|
||||
async function connectDevWS() {
|
||||
wstransport = transport = new DevWsTransport(onTransportOpen, () =>
|
||||
console.log("onclose")
|
||||
);
|
||||
}
|
||||
</script>
|
||||
|
||||
<h1>
|
||||
{#if !import.meta.env.VITE_ADRIFT_DEV}
|
||||
<button on:click={connectFirebase}>Connect with firebase </button>
|
||||
<button on:click={connectFirebase}>Connect with firebase</button>
|
||||
{:else}
|
||||
<button on:click={connectDevHttp}>Connect with dev HTTP</button>
|
||||
<button on:click={connectDevHttp}
|
||||
>Connect with dev webrtc (http signaling server)</button
|
||||
>
|
||||
<button on:click={connectDevWS}>Connect with dev websocket</button>
|
||||
{/if}
|
||||
</h1>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue