aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-02-19 21:29:13 +0100
committerMel <einebeere@gmail.com>2022-02-19 21:29:13 +0100
commit4146aec38693845e27f2030230569b284c913696 (patch)
tree958ac7ab18afa3761a14ccb05ad1ee8e84e3e84e
parent3ca55a473eb3f6507147dcd7f4476154f9eb9294 (diff)
downloadrook-4146aec38693845e27f2030230569b284c913696.tar.zst
rook-4146aec38693845e27f2030230569b284c913696.zip
Setup handler for every event to avoid errors
-rw-r--r--assets/src/network/channel/connection.ts15
-rw-r--r--assets/src/network/channel/messages/messages.ts18
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