aboutsummaryrefslogtreecommitdiff
path: root/client-web
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2022-09-08 14:51:54 +0200
committermetamuffin <metamuffin@disroot.org>2022-09-08 14:51:54 +0200
commit2cac71d01b23c2566b797160fd70f254c58550f3 (patch)
tree524150959b6e7cc0edf361cfa4fb77a1857a35dc /client-web
parentcd255848196da0d8732d31049cc0f98388205a30 (diff)
downloadkeks-meet-2cac71d01b23c2566b797160fd70f254c58550f3.tar
keks-meet-2cac71d01b23c2566b797160fd70f254c58550f3.tar.bz2
keks-meet-2cac71d01b23c2566b797160fd70f254c58550f3.tar.zst
server rewrite works
Diffstat (limited to 'client-web')
-rw-r--r--client-web/source/local_user.ts1
-rw-r--r--client-web/source/rnnoise.ts2
-rw-r--r--client-web/source/room.ts38
3 files changed, 24 insertions, 17 deletions
diff --git a/client-web/source/local_user.ts b/client-web/source/local_user.ts
index bfd9459..b3d5692 100644
--- a/client-web/source/local_user.ts
+++ b/client-web/source/local_user.ts
@@ -8,7 +8,6 @@ import { Room } from "./room.ts";
import { TrackHandle } from "./track_handle.ts";
import { User } from "./user.ts";
-
export class LocalUser extends User {
mic_gain?: GainNode
default_gain: number = parameter_number("mic_gain", 1)
diff --git a/client-web/source/rnnoise.ts b/client-web/source/rnnoise.ts
index 7867682..d6efb3b 100644
--- a/client-web/source/rnnoise.ts
+++ b/client-web/source/rnnoise.ts
@@ -23,7 +23,7 @@ export async function get_rnnoise_node(context: AudioContext): Promise<RNNoiseNo
if (!RNNoiseNode) {
log("rnnoise", "loading wasm...")
script = document.createElement("script")
- script.src = "/_rnnoise/rnnoise-runtime.js"
+ script.src = "/_assets/rnnoise/rnnoise-runtime.js"
script.defer = true
document.head.appendChild(script)
//@ts-ignore asdfsfad
diff --git a/client-web/source/room.ts b/client-web/source/room.ts
index af85044..c22a956 100644
--- a/client-web/source/room.ts
+++ b/client-web/source/room.ts
@@ -13,6 +13,7 @@ export class Room {
users: Map<number, User> = new Map()
remote_users: Map<number, RemoteUser> = new Map()
local_user!: LocalUser
+ my_id!: number
websocket: WebSocket
constructor(name: string) {
@@ -34,17 +35,21 @@ export class Room {
websocket_message(packet: ClientboundPacket) {
log("ws", `<- ${packet.message?.sender ?? "control packet"}: `, packet);
if (packet.init) {
- this.local_user = new LocalUser(this, packet.init.your_id, "...");
- }
- if (packet.client_join) {
+ this.my_id = packet.init.your_id
+ // no need to check compat for now because this is hosted in the same place
+ log("*", `server: ${packet.init.version}`)
+ } else if (packet.client_join) {
const p = packet.client_join
log("*", `${this.name} ${p.id} joined`);
- const ru = new RemoteUser(this, p.id, p.name)
- this.local_user.add_initial_to_remote(ru)
- ru.offer()
- this.users.set(p.id, ru)
- this.remote_users.set(p.id, ru)
- return
+ if (p.id == this.my_id) {
+ this.local_user = new LocalUser(this, p.id, p.name);
+ } else {
+ const ru = new RemoteUser(this, p.id, p.name)
+ this.local_user.add_initial_to_remote(ru)
+ ru.offer()
+ this.users.set(p.id, ru)
+ this.remote_users.set(p.id, ru)
+ }
} else if (packet.client_leave) {
const p = packet.client_leave;
log("*", `${this.name} ${p.id} left`);
@@ -52,13 +57,16 @@ export class Room {
this.users.delete(p.id)
this.remote_users.delete(p.id)
return
- }
- if (packet.message) {
+ } else if (packet.message) {
const p = packet.message;
- const sender = this.remote_users.get(p.sender)!
- if (p.message.ice_candidate) sender.add_ice_candidate(p.message.ice_candidate)
- if (p.message.offer) sender.on_offer(p.message.offer)
- if (p.message.answer) sender.on_answer(p.message.answer)
+ const sender = this.users.get(p.sender)
+ if (sender instanceof RemoteUser) {
+ if (p.message.ice_candidate) sender.add_ice_candidate(p.message.ice_candidate)
+ if (p.message.offer) sender.on_offer(p.message.offer)
+ if (p.message.answer) sender.on_answer(p.message.answer)
+ } else {
+ console.log("!", p, sender);
+ }
}
}
websocket_close() {