diff --git a/components/Nav.vue b/components/Nav.vue
index 91607b6..2c244c7 100644
--- a/components/Nav.vue
+++ b/components/Nav.vue
@@ -69,6 +69,6 @@ const menu = ref(false);
-
+
diff --git a/composables/messages.ts b/composables/messages.ts
index 3f60d84..fbebd74 100644
--- a/composables/messages.ts
+++ b/composables/messages.ts
@@ -1,4 +1,5 @@
import { useWebSocket } from "@vueuse/core";
+import ReconnectingWebSocket from "reconnecting-websocket";
export const useMessages = () => {
const messages = ref([]);
const sendMessage = ref((_: any) => {});
@@ -6,16 +7,18 @@ export const useMessages = () => {
onMounted(() => {
const config = useRuntimeConfig();
- const { ws: websocket, send } = useWebSocket(config.public.wsUrl, {
- autoReconnect: true,
- });
- websocket.value.addEventListener("message", ({ data }) => {
+ // const { ws: websocket, send } = useWebSocket(config.public.wsUrl, {
+ // autoReconnect: true,
+ // });
+ const websocket = new ReconnectingWebSocket("wss://data.elektron.art");
+
+ websocket.addEventListener("message", ({ data }) => {
const message = JSON.parse(data);
messages.value.push(message);
});
ws.value = websocket;
sendMessage.value = (message: any) =>
- send(
+ websocket.send(
JSON.stringify({
id: randomString(),
datetime: new Date().toISOString(),
diff --git a/package-lock.json b/package-lock.json
index b901ebe..99ed99c 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5,8 +5,6 @@
"packages": {
"": {
"dependencies": {
- "@huntersofbook/plausible-nuxt": "^0.3.0",
- "@huntersofbook/plausible-vue": "^0.3.0",
"@iconify-json/ph": "^1.1.2",
"@iconify-json/radix-icons": "^1.1.5",
"@nuxtjs/strapi": "^1.5.1",
@@ -26,6 +24,7 @@
"plausible-tracker": "^0.3.8",
"prettier": "^2.7.1",
"prettier-plugin-tailwindcss": "^0.1.13",
+ "reconnecting-websocket": "^4.4.0",
"rss-parser": "^3.12.0",
"unplugin-icons": "^0.14.9",
"vite": "^3.1.1"
@@ -588,83 +587,6 @@
"node": ">=12"
}
},
- "node_modules/@huntersofbook/plausible-nuxt": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@huntersofbook/plausible-nuxt/-/plausible-nuxt-0.3.0.tgz",
- "integrity": "sha512-Aj0BIx6aptUi/iQv18aWyIMT5vLVzAVdBokFyNQ6qM6k66s0bLQQ8JkBkbojsyE9vW7HYhTWGCJ3fE3FHlrRWQ==",
- "dependencies": {
- "@huntersofbook/plausible-vue": "0.3.0",
- "@nuxt/kit": "^3.0.0-rc.11",
- "defu": "^6.1.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/huntersofbook"
- }
- },
- "node_modules/@huntersofbook/plausible-nuxt/node_modules/@nuxt/kit": {
- "version": "3.0.0-rc.11",
- "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.0.0-rc.11.tgz",
- "integrity": "sha512-o0E/k635Lzcxp4K5t0ToHC6WwQ1wyN0EIqMAQEzgiUexoAhzdURr21QI0D6e6U461u4KP7x92wYM87VxhMFXmQ==",
- "dependencies": {
- "@nuxt/schema": "3.0.0-rc.11",
- "c12": "^0.2.13",
- "consola": "^2.15.3",
- "defu": "^6.1.0",
- "globby": "^13.1.2",
- "hash-sum": "^2.0.0",
- "ignore": "^5.2.0",
- "jiti": "^1.16.0",
- "knitwork": "^0.1.2",
- "lodash.template": "^4.5.0",
- "mlly": "^0.5.16",
- "pathe": "^0.3.8",
- "pkg-types": "^0.3.5",
- "scule": "^0.3.2",
- "semver": "^7.3.7",
- "unctx": "^2.0.2",
- "unimport": "^0.6.7",
- "untyped": "^0.5.0"
- },
- "engines": {
- "node": "^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@huntersofbook/plausible-nuxt/node_modules/@nuxt/schema": {
- "version": "3.0.0-rc.11",
- "resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.0.0-rc.11.tgz",
- "integrity": "sha512-EIBYQeBxJ+JZ8RjPRGaXM9+vtWMHQ4HsqZIw5a+p6hqRLGf53fHANT4vjMQZA4fAYBnJZJI7dB/OXkfyb/kikA==",
- "dependencies": {
- "c12": "^0.2.13",
- "create-require": "^1.1.1",
- "defu": "^6.1.0",
- "jiti": "^1.16.0",
- "pathe": "^0.3.8",
- "pkg-types": "^0.3.5",
- "postcss-import-resolver": "^2.0.0",
- "scule": "^0.3.2",
- "std-env": "^3.2.1",
- "ufo": "^0.8.5",
- "unimport": "^0.6.7"
- },
- "engines": {
- "node": "^14.16.0 || ^16.11.0 || ^17.0.0 || ^18.0.0"
- }
- },
- "node_modules/@huntersofbook/plausible-vue": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@huntersofbook/plausible-vue/-/plausible-vue-0.3.0.tgz",
- "integrity": "sha512-dTz8Bd2yD2zngnVWfL+4drxgxT/RU4GUYxD9NKEO3QZVq2nvT7LRjjd0jvEE/ux/ZkBBiV9gzfoEtNiX4BDx1A==",
- "dependencies": {
- "defu": "^6.1.0",
- "plausible-tracker": "^0.3.8"
- },
- "funding": {
- "url": "https://github.com/sponsors/huntersofbook"
- },
- "peerDependencies": {
- "vue": "^3.2.39"
- }
- },
"node_modules/@iconify-json/ph": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@iconify-json/ph/-/ph-1.1.2.tgz",
@@ -7829,6 +7751,11 @@
"node": ">=8.10.0"
}
},
+ "node_modules/reconnecting-websocket": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/reconnecting-websocket/-/reconnecting-websocket-4.4.0.tgz",
+ "integrity": "sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng=="
+ },
"node_modules/redis-errors": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
@@ -10281,70 +10208,6 @@
"integrity": "sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw==",
"optional": true
},
- "@huntersofbook/plausible-nuxt": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@huntersofbook/plausible-nuxt/-/plausible-nuxt-0.3.0.tgz",
- "integrity": "sha512-Aj0BIx6aptUi/iQv18aWyIMT5vLVzAVdBokFyNQ6qM6k66s0bLQQ8JkBkbojsyE9vW7HYhTWGCJ3fE3FHlrRWQ==",
- "requires": {
- "@huntersofbook/plausible-vue": "0.3.0",
- "@nuxt/kit": "^3.0.0-rc.11",
- "defu": "^6.1.0"
- },
- "dependencies": {
- "@nuxt/kit": {
- "version": "3.0.0-rc.11",
- "resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.0.0-rc.11.tgz",
- "integrity": "sha512-o0E/k635Lzcxp4K5t0ToHC6WwQ1wyN0EIqMAQEzgiUexoAhzdURr21QI0D6e6U461u4KP7x92wYM87VxhMFXmQ==",
- "requires": {
- "@nuxt/schema": "3.0.0-rc.11",
- "c12": "^0.2.13",
- "consola": "^2.15.3",
- "defu": "^6.1.0",
- "globby": "^13.1.2",
- "hash-sum": "^2.0.0",
- "ignore": "^5.2.0",
- "jiti": "^1.16.0",
- "knitwork": "^0.1.2",
- "lodash.template": "^4.5.0",
- "mlly": "^0.5.16",
- "pathe": "^0.3.8",
- "pkg-types": "^0.3.5",
- "scule": "^0.3.2",
- "semver": "^7.3.7",
- "unctx": "^2.0.2",
- "unimport": "^0.6.7",
- "untyped": "^0.5.0"
- }
- },
- "@nuxt/schema": {
- "version": "3.0.0-rc.11",
- "resolved": "https://registry.npmjs.org/@nuxt/schema/-/schema-3.0.0-rc.11.tgz",
- "integrity": "sha512-EIBYQeBxJ+JZ8RjPRGaXM9+vtWMHQ4HsqZIw5a+p6hqRLGf53fHANT4vjMQZA4fAYBnJZJI7dB/OXkfyb/kikA==",
- "requires": {
- "c12": "^0.2.13",
- "create-require": "^1.1.1",
- "defu": "^6.1.0",
- "jiti": "^1.16.0",
- "pathe": "^0.3.8",
- "pkg-types": "^0.3.5",
- "postcss-import-resolver": "^2.0.0",
- "scule": "^0.3.2",
- "std-env": "^3.2.1",
- "ufo": "^0.8.5",
- "unimport": "^0.6.7"
- }
- }
- }
- },
- "@huntersofbook/plausible-vue": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/@huntersofbook/plausible-vue/-/plausible-vue-0.3.0.tgz",
- "integrity": "sha512-dTz8Bd2yD2zngnVWfL+4drxgxT/RU4GUYxD9NKEO3QZVq2nvT7LRjjd0jvEE/ux/ZkBBiV9gzfoEtNiX4BDx1A==",
- "requires": {
- "defu": "^6.1.0",
- "plausible-tracker": "^0.3.8"
- }
- },
"@iconify-json/ph": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@iconify-json/ph/-/ph-1.1.2.tgz",
@@ -15548,6 +15411,11 @@
"picomatch": "^2.2.1"
}
},
+ "reconnecting-websocket": {
+ "version": "4.4.0",
+ "resolved": "https://registry.npmjs.org/reconnecting-websocket/-/reconnecting-websocket-4.4.0.tgz",
+ "integrity": "sha512-D2E33ceRPga0NvTDhJmphEgJ7FUYF0v4lr1ki0csq06OdlxKfugGzN0dSkxM/NfqCxYELK4KcaTOUOjTV6Dcng=="
+ },
"redis-errors": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
diff --git a/package.json b/package.json
index b7966b7..efcd434 100644
--- a/package.json
+++ b/package.json
@@ -28,6 +28,7 @@
"plausible-tracker": "^0.3.8",
"prettier": "^2.7.1",
"prettier-plugin-tailwindcss": "^0.1.13",
+ "reconnecting-websocket": "^4.4.0",
"rss-parser": "^3.12.0",
"unplugin-icons": "^0.14.9",
"vite": "^3.1.1"
diff --git a/pages/lab/chat2.vue b/pages/lab/chat2.vue
new file mode 100644
index 0000000..bb38e6b
--- /dev/null
+++ b/pages/lab/chat2.vue
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+