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/websocket/websocket.js | 4 +- vue.config.js | 4 +- src/views/shortmessage/communication/index.vue | 65 +++++++++++++++++++++++++++++--- 3 files changed, 62 insertions(+), 11 deletions(-) diff --git a/src/views/shortmessage/communication/index.vue b/src/views/shortmessage/communication/index.vue index 18df674..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 @@ -628,7 +679,7 @@ console.log(message); console.log(file); console.log(next); - this.requstWs(); + this.requstWs(message, next, file); setTimeout(() => { next(); }, 1000); diff --git a/src/websocket/websocket.js b/src/websocket/websocket.js index d7090e8..a7e337b 100644 --- a/src/websocket/websocket.js +++ b/src/websocket/websocket.js @@ -16,13 +16,13 @@ * 鍙戣捣websocket杩炴帴 * @param {Object} agentData 闇�瑕佸悜鍚庡彴浼犻�掔殑鍙傛暟鏁版嵁 */ -function websocketSend (agentData) { +export function websocketSend (agentData) { // 鍔犲欢杩熸槸涓轰簡灏介噺璁﹚s杩炴帴鐘舵�佸彉涓篛PEN 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 diff --git a/vue.config.js b/vue.config.js index 034b409..a807cde 100644 --- a/vue.config.js +++ b/vue.config.js @@ -35,8 +35,8 @@ 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]: '' -- Gitblit v1.9.3