diff options
| author | Mel <einebeere@gmail.com> | 2022-02-19 21:29:13 +0100 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2022-02-19 21:29:13 +0100 |
| commit | 4146aec38693845e27f2030230569b284c913696 (patch) | |
| tree | 958ac7ab18afa3761a14ccb05ad1ee8e84e3e84e /assets/src | |
| parent | 3ca55a473eb3f6507147dcd7f4476154f9eb9294 (diff) | |
| download | rook-4146aec38693845e27f2030230569b284c913696.tar.zst rook-4146aec38693845e27f2030230569b284c913696.zip | |
Setup handler for every event to avoid errors
Diffstat (limited to 'assets/src')
| -rw-r--r-- | assets/src/network/channel/connection.ts | 15 | ||||
| -rw-r--r-- | assets/src/network/channel/messages/messages.ts | 18 |
2 files changed, 24 insertions, 9 deletions
diff --git a/assets/src/network/channel/connection.ts b/assets/src/network/channel/connection.ts index a26f624..97866f0 100644 --- a/assets/src/network/channel/connection.ts +++ b/assets/src/network/channel/connection.ts @@ -2,7 +2,7 @@ import { Channel, Push, Socket } from "phoenix"; import { get, Readable, writable, Writable } from "svelte/store"; import { RookType } from "../../models/rook_type"; import getShareToken from "../../utils/getShareToken"; -import type { AnyMessage } from "./messages/messages"; +import { AnyMessage, eventNames } from "./messages/messages"; import { MessageHandler, routeEventToHandler, @@ -70,12 +70,13 @@ export class Connection { this.updateState(ConnectionState.CONNECTED); - // Setup up event handler. - this.channel.onMessage = (event, payload) => { - const payloadWithEvent = { ...payload, event_name: event }; - routeEventToHandler(event, payloadWithEvent, this.handler); - return payload; - }; + // Setup up event handlers. + eventNames.forEach(event => { + this.channel.on(event, payload => { + const payloadWithEvent = { ...payload, event_name: event }; + routeEventToHandler(event, payloadWithEvent, this.handler); + }); + }); } send(event: string, data: any): Push { diff --git a/assets/src/network/channel/messages/messages.ts b/assets/src/network/channel/messages/messages.ts index 7eee4a8..0dd8178 100644 --- a/assets/src/network/channel/messages/messages.ts +++ b/assets/src/network/channel/messages/messages.ts @@ -1,6 +1,20 @@ -export type AnyMessage = ShareMessage | RequestMessage; +export const eventNames = [ + "new_request", + "request_cancelled", + "share_accepted", + "request_ice_candidate", -export type EventName = AnyMessage["event_name"]; + "request_acknowledged", + "request_accepted", + "share_cancelled", + "share_ice_candidate", +] as const; + +export type EventName = typeof eventNames[any]; + +export type AnyMessage = (ShareMessage | RequestMessage) & { + event_name: EventName; +}; // Messages for the sharer |
