From a8799531bd3918b2416b95914b02101ce1337ddb Mon Sep 17 00:00:00 2001
From: heimawl <1785969728@qq.com>
Date: 星期二, 04 七月 2023 14:00:14 +0800
Subject: [PATCH] 11

---
 src/views/shortmessage/communication/index.vue |   68 ++++++++++++++++++++++++++++++----
 1 files changed, 60 insertions(+), 8 deletions(-)

diff --git a/src/views/shortmessage/communication/index.vue b/src/views/shortmessage/communication/index.vue
index 34e458f..4bb666e 100644
--- a/src/views/shortmessage/communication/index.vue
+++ b/src/views/shortmessage/communication/index.vue
@@ -65,7 +65,11 @@
 <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 = () => {
@@ -581,19 +585,66 @@
       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: "甯濆緱鍦g浉鐩告洶搴�",
+        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
@@ -625,9 +676,10 @@
     },
     // 鍙戦�佹柊娑堟伅瑙﹀彂
     handleSend(message, next, file) {
-      console.log(message, file);
+      console.log(message);
+      console.log(file);
       console.log(next);
-      this.requstWs();
+      this.requstWs(message, next, file);
       setTimeout(() => {
         next();
       }, 1000);

--
Gitblit v1.9.3