1234567891011121314151617181920212223242526272829303132333435 |
- import { defineStore } from "pinia";
- export const useWebsocketsStore = defineStore("websockets", {
- state: () => ({
- socket: {
- dispatcher: {}
- }
- }),
- actions: {
- createSocket(socket) {
- const { listeners } = this.socket.dispatcher;
- this.socket = socket;
- // only executes if the websocket object is being replaced
- if (listeners) {
- // for each listener type
- Object.keys(listeners).forEach(listenerType =>
- // for each callback previously present for the listener type
- listeners[listenerType].forEach(element => {
- // add the listener back after the websocket object is reset
- this.socket.dispatcher.addEventListener(
- listenerType,
- element.cb
- );
- })
- );
- }
- }
- },
- getters: {
- getSocket() {
- return this.socket;
- }
- }
- });
|