|  |  | 
 |  |  | <script> | 
 |  |  | import LemonMessageVoice from "./lemon-message-voice"; | 
 |  |  | import EmojiData from "./database/emoji"; | 
 |  |  | import { sendWebsocket, closeWebsocket } from "@/websocket/websocket.js"; | 
 |  |  | import { | 
 |  |  |   sendWebsocket, | 
 |  |  |   websocketSend, | 
 |  |  |   closeWebsocket, | 
 |  |  | } from "@/websocket/websocket.js"; | 
 |  |  | // Vue.component(LemonMessageVoice.name, LemonMessageVoice); | 
 |  |  | // 获取时间 | 
 |  |  | const getTime = () => { | 
 |  |  | 
 |  |  |       instance.closeDrawer(); | 
 |  |  |     }, | 
 |  |  |     // 建立连接 | 
 |  |  |     requstWs() { | 
 |  |  |     requstWs(message, next, file) { | 
 |  |  |       console.log("连接"); | 
 |  |  |       // 防止用户多次连续点击发起请求,所以要先关闭上次的ws请求。 | 
 |  |  |       closeWebsocket(); | 
 |  |  |       // closeWebsocket(); | 
 |  |  |  | 
 |  |  |       if (file) { | 
 |  |  |         const reader = new FileReader(); | 
 |  |  |         console.log(reader); | 
 |  |  |         console.log(file); | 
 |  |  |         reader.onload = (file) => { | 
 |  |  |           console.log(file); | 
 |  |  |           console.log(reader); | 
 |  |  |           const imageData = reader.result; | 
 |  |  |           //文件字节大小 | 
 |  |  |           //  const fileSize = file.loaded; | 
 |  |  |           const fileSize = imageData.length; | 
 |  |  |           console.log("byteLength : ", fileSize); | 
 |  |  |           const chunkSize = 4096; // 设置每个数据块的大小 | 
 |  |  |           let offset = 0; | 
 |  |  |  | 
 |  |  |           // 分块传输图片数据 | 
 |  |  |           while (offset < imageData.length) { | 
 |  |  |             const chunk = imageData.slice(offset, offset + chunkSize); | 
 |  |  |             const obj = { | 
 |  |  |               type: file.type, | 
 |  |  |               userId: "1", //接收数据方 | 
 |  |  |               fileSize: fileSize, | 
 |  |  |               image: chunk, | 
 |  |  |             }; | 
 |  |  |             console.log(JSON.stringify(obj)); | 
 |  |  |             // 发起ws请求 | 
 |  |  |             // sendWebsocket( | 
 |  |  |             //   "ws://192.168.31.121:8080/chat?userId=2", | 
 |  |  |             //   JSON.stringify(obj), | 
 |  |  |             //   this.wsMessage, | 
 |  |  |             //   this.wsError | 
 |  |  |             // ); | 
 |  |  |             websocketSend(JSON.stringify(obj)); | 
 |  |  |             offset += chunkSize; | 
 |  |  |  | 
 |  |  |             console.log("offset : ", offset); | 
 |  |  |           } | 
 |  |  |  | 
 |  |  |           // 发送完成标记 | 
 |  |  |           console.log("message "); | 
 |  |  |         }; | 
 |  |  |  | 
 |  |  |         return reader.readAsDataURL(file); | 
 |  |  |       } | 
 |  |  |  | 
 |  |  |       // 跟后端协商,需要什么参数数据给后台 | 
 |  |  |       const obj = { | 
 |  |  |         type: "text", | 
 |  |  |         content: "帝得圣相相曰度", | 
 |  |  |         type: "object", | 
 |  |  |         userId: "1", //接收数据方 | 
 |  |  |         fileSize: "1212", | 
 |  |  |         image: "12", | 
 |  |  |       }; | 
 |  |  |       // 发起ws请求 | 
 |  |  |       sendWebsocket( | 
 |  |  |         "ws://192.168.1.4:8080/chat?userId=2", | 
 |  |  |         "ws://192.168.31.121:8080/chat?userId=2", | 
 |  |  |         obj, | 
 |  |  |         this.wsMessage, | 
 |  |  |         this.wsError | 
 |  |  | 
 |  |  |       console.log(message); | 
 |  |  |       console.log(file); | 
 |  |  |       console.log(next); | 
 |  |  |       this.requstWs(); | 
 |  |  |       this.requstWs(message, next, file); | 
 |  |  |       setTimeout(() => { | 
 |  |  |         next(); | 
 |  |  |       }, 1000); | 
 
 |  |  | 
 |  |  |  * 发起websocket连接 | 
 |  |  |  * @param {Object} agentData 需要向后台传递的参数数据 | 
 |  |  |  */ | 
 |  |  | function websocketSend (agentData) { | 
 |  |  | export function websocketSend (agentData) { | 
 |  |  |   // 加延迟是为了尽量让ws连接状态变为OPEN    | 
 |  |  |   setTimeout(() => {  | 
 |  |  |     // 添加状态判断,当为OPEN时,发送消息 | 
 |  |  |     if (websock.readyState === websock.OPEN) { // websock.OPEN = 1  | 
 |  |  |       // 发给后端的数据需要字符串化 | 
 |  |  |       websock.send(JSON.stringify(agentData)) | 
 |  |  |       websock.send(agentData) | 
 |  |  |       console.log('连接成功'); | 
 |  |  |     } | 
 |  |  |     if (websock.readyState === websock.CLOSED) { // websock.CLOSED = 3  | 
 
 |  |  | 
 |  |  |     proxy: { | 
 |  |  |       // detail: https://cli.vuejs.org/config/#devserver-proxy | 
 |  |  |       [process.env.VUE_APP_BASE_API]: { | 
 |  |  |         target1: `http://192.168.1.4:8080`, | 
 |  |  |         target: `http://192.168.1.4:8080`, | 
 |  |  |         target1: `http://192.168.31.121:8080`, | 
 |  |  |         target: `http://192.168.31.121:8080`, | 
 |  |  |         changeOrigin: true, | 
 |  |  |         pathRewrite: { | 
 |  |  |           ['^' + process.env.VUE_APP_BASE_API]: '' |