diff options
Diffstat (limited to 'assets/src/network/channel')
| -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 |
