diff options
author | metamuffin <metamuffin@disroot.org> | 2022-09-09 15:35:56 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-09-09 15:35:56 +0200 |
commit | de8e2d40ed2744c4c25ec7cdbe778e1723dbb830 (patch) | |
tree | 11d7e40b6c74946f2c0a3fa6a416b729b2582146 /client-web/source/user/remote.ts | |
parent | 8aaf7e201e58ec9ecb431a6ac05e07d0078b12b0 (diff) | |
download | keks-meet-de8e2d40ed2744c4c25ec7cdbe778e1723dbb830.tar keks-meet-de8e2d40ed2744c4c25ec7cdbe778e1723dbb830.tar.bz2 keks-meet-de8e2d40ed2744c4c25ec7cdbe778e1723dbb830.tar.zst |
refactor + identify
Diffstat (limited to 'client-web/source/user/remote.ts')
-rw-r--r-- | client-web/source/user/remote.ts | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/client-web/source/user/remote.ts b/client-web/source/user/remote.ts index ced8482..dbae3db 100644 --- a/client-web/source/user/remote.ts +++ b/client-web/source/user/remote.ts @@ -1,5 +1,6 @@ /// <reference lib="dom" /> +import { RelayMessage } from "../../../common/packets.d.ts"; import { ROOM_CONTAINER, RTC_CONFIG } from "../index.ts" import { log } from "../logger.ts" import { Room } from "../room.ts" @@ -12,6 +13,8 @@ export class RemoteUser extends User { constructor(room: Room, id: number) { super(room, id) + room.remote_users.set(this.id, this) + log("usermodel", `added remote user: ${id}`) this.peer = new RTCPeerConnection(RTC_CONFIG) this.peer.onicecandidate = ev => { @@ -31,6 +34,20 @@ export class RemoteUser extends User { this.offer() } } + leave() { + log("usermodel", `remove remote user: ${this.display_name}`) + this.peer.close() + this.room.remote_users.delete(this.id) + super.leave() + ROOM_CONTAINER.removeChild(this.el) + } + + on_relay(message: RelayMessage) { + if (message.ice_candidate) this.add_ice_candidate(message.ice_candidate) + if (message.offer) this.on_offer(message.offer) + if (message.answer) this.on_answer(message.answer) + if (message.identify) this.name = message.identify.username + } async offer() { this.negotiation_busy = true @@ -65,10 +82,4 @@ export class RemoteUser extends User { add_ice_candidate(candidate: RTCIceCandidateInit) { this.peer.addIceCandidate(new RTCIceCandidate(candidate)) } - - leave() { - log("usermodel", `remove remote user: ${this.display_name}`) - this.peer.close() - ROOM_CONTAINER.removeChild(this.el) - } }
\ No newline at end of file |