Browse Source

worker暂时备份

CzRger 9 months ago
parent
commit
ee4d9b2acd
2 changed files with 48 additions and 0 deletions
  1. 16 0
      src/views/web/list/index.vue
  2. 32 0
      src/worker/worker-websocket.js

+ 16 - 0
src/views/web/list/index.vue

@@ -228,6 +228,7 @@ import {useAppStore, useDictionaryStore, useThemeStore, useWebStore, useIndexDBS
 import {ElLoading, ElMessage} from "element-plus";
 import {frontGetIndexAndFieldInfo, searchLogsSaveSearchLog} from "@/api/modules/web/list";
 import DetailCom from './detail.vue'
+// import WorkerWebsocket from "@/worker/worker-websocket?sharedworker";
 
 const {proxy} = getCurrentInstance()
 const AppStore = useAppStore()
@@ -453,6 +454,21 @@ watch(() => state.resultParams.activeIndex, (n) => {
   }
 })
 const initWS = () => {
+  // const worker = new WorkerWebsocket()
+  // worker.port.onmessage = (e) => {
+  //   const data = JSON.parse(e.data)
+  //   switch (data.type) {
+  //     case 'load': {
+  //       console.log(111)
+  //       worker.port.postMessage(JSON.stringify({type: 'init'}))
+  //     } break
+  //     case 'message': {
+  //       console.log(data.data)
+  //     } break
+  //   }
+  //   console.log(222)
+  //   console.log(e)
+  // }
   const loading = ElLoading.service({
     lock: true,
     text: '搜索服务连接中……',

+ 32 - 0
src/worker/worker-websocket.js

@@ -0,0 +1,32 @@
+self.window = self;
+window = self;
+
+const ws = null
+const ports = []
+
+self.onconnect = (event) => {
+  console.log('哈哈哈')
+  const port = event.ports[0]
+  ports.push(port)
+  let ws = null
+  port.postMessage(JSON.stringify({type: 'load'}))
+  port.onmessage = (e) => {
+    const data = JSON.parse(e.data)
+    switch (data.type) {
+      case 'init': {
+        if (ws) {
+          port.postMessage(JSON.stringify({type: 'ready'}))
+        } else {
+          ws = new WebSocket('ws://localhost:18375')
+          ws.onopen = (e) => {
+            console.log(4444)
+            port.postMessage(JSON.stringify({type: 'ready'}))
+          }
+          ws.onmessage = (e) => {
+            ports.forEach((p) => p.postMessage(JSON.stringify({type: 'message', data: e.data})))
+          }
+        }
+      } break
+    }
+  }
+};