diff --git a/server.js b/server.js index 70076f4..04bfbac 100644 --- a/server.js +++ b/server.js @@ -377,6 +377,7 @@ function createGroupTableDB(gID, verify) { `CREATE TABLE IF NOT EXISTS ${gID} ( message TEXT NOT NULL, type TEXT NOT NULL, + type1 TEXT NOT NULL, sender TEXT NOT NULL, timestamp INT NOT NULL );` @@ -385,11 +386,11 @@ function createGroupTableDB(gID, verify) { } // 插入信息 -function insertMessageByGID(gID, msg, from, timestamp) { +function insertMessageByGID(gID, msg,type1, from, timestamp) { if (!generateStmt_insertMessage_map[gID]) { - generateStmt_insertMessage_map[gID] = db.prepare(`INSERT INTO ${gID} (message,type,sender, timestamp) VALUES (?, ?, ?, ?)`); + generateStmt_insertMessage_map[gID] = db.prepare(`INSERT INTO ${gID} (message,type,type1,sender, timestamp) VALUES (?, ?, ?, ?, ?)`); } - generateStmt_insertMessage_map[gID].run(msg, "gMsg", from, timestamp); + generateStmt_insertMessage_map[gID].run(msg, "gMsg",type1, from, timestamp); } function updateActiveTimestamp(gID) { @@ -423,14 +424,14 @@ function getHistory(gID) { return groupsMap[gID].msgHistory; } -function broadcastMsg(gID, msg, from) { +function broadcastMsg(gID, msg,type1, from) { const timestamp = parseInt(Date.now()); initMsgHistory(gID); updateActiveTimestamp(gID); - insertMessageByGID(gID, msg, from, timestamp); + insertMessageByGID(gID, msg,type1, from, timestamp); - let bmsg = JSON.stringify({ type: "gMsg", gID, msg, from, timestamp }); - groupsMap[gID].msgHistory.push({ type: "gMsg", msg, from, timestamp }); + let bmsg = JSON.stringify({ type: `gMsg`,type1, gID, msg, from, timestamp }); + groupsMap[gID].msgHistory.push({ type: `gMsg`,type1, msg, from, timestamp }); for (let socket of groupsMap[gID].member) { socket.send(bmsg); } @@ -490,7 +491,7 @@ wss.on("connection", socket => { } } else if (type === "message") { let gID = msg.gID; - broadcastMsg(gID, msg.msg, uuid); + broadcastMsg(gID, msg.msg,msg.type1, uuid); } else if (type === "heartbeat") { socket.send(JSON.stringify({ type: "sMsg", type1: "heartbeat" })); } else if (type === "uuid") { diff --git a/src/components/chatui.vue b/src/components/chatui.vue new file mode 100644 index 0000000..7e30103 --- /dev/null +++ b/src/components/chatui.vue @@ -0,0 +1,29 @@ + + + + + \ No newline at end of file diff --git a/src/pinia/store.js b/src/pinia/store.js index e5da747..f103246 100644 --- a/src/pinia/store.js +++ b/src/pinia/store.js @@ -25,7 +25,7 @@ export const useSettingStore = defineStore("setting", { activeKeyMap:JSON.parse(activeKeyMap), serverPort:config.PORT, token,userID,userGroup - }), + }), getters: { // double: state => state.count * 2 }, diff --git a/src/views/chat.vue b/src/views/chat.vue index 7e72414..6867d24 100644 --- a/src/views/chat.vue +++ b/src/views/chat.vue @@ -1,52 +1,58 @@ @@ -72,8 +80,9 @@ import { useSettingStore } from "@/pinia/store"; import { generateKey, encryptString } from '@/func/upload'; import { decryptString } from '@/func/download'; import WebsocketHeartbeatJs from 'websocket-heartbeat-js'; -import { CopyOutline } from '@vicons/ionicons5' +import { CopyOutline,SendOutline } from '@vicons/ionicons5' import getQueryString from '@/func/getQuery' +import chatui from "@/components/chatui.vue" @@ -122,6 +131,10 @@ const columnsTest = [ key: "msg" }, ]; +function handleKeyDown(e){ + console.log(e) + +} // 用于二维码分享 const showModal = ref(false) @@ -212,7 +225,7 @@ socket.onmessage = (event) => { } else if (type === 'gMsg') { let gID = msg.gID let key = gID2key[gID].key - Messages.value[msg.gID].push({ type: msg.type, msg: decryptString(key, msg.msg), from: msg.from, timestamp: msg.timestamp }) + Messages.value[msg.gID].push({ type: msg.type,type1:msg.type1, msg: decryptString(key, msg.msg), from: msg.from, timestamp: msg.timestamp }) // console.log(Messages.value) dataTest.value.push({ from: 'decrypt', msg: decryptString(key, msg.msg) }) } @@ -261,11 +274,18 @@ function joinGroup_Verify(gID) { } function sendMsg(gID, msg) { + if(msg === '' || activeGID.value === null)return let key = gID2key[gID].key msg = encryptString(key, msg, setting) - socket.send(JSON.stringify({ type: 'message', msg, gID })) + socket.send(JSON.stringify({ type: 'message',type1:'text', msg, gID })) } +function sendImg(gID,code){ + if(msg === '' || activeGID.value === null)return + let key = gID2key[gID].key + msg = encryptString(key, msg, setting) + socket.send(JSON.stringify({ type: 'message',type1:'img', msg, gID })) +} // 通过地址传参并加入传入的群组 diff --git a/src/views/login.vue b/src/views/login.vue index eb20410..4d430b4 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -79,6 +79,7 @@ async function login() { settingData.setJWT(data.token,keepTokenLocal) settingData.setUserID(userIDInput.value,keepTokenLocal) settingData.setUserGroup(data.userGroup,keepTokenLocal) + message.success(`登录成功`); } catch (e) { isLogining.value = false message.error(`登录失败`); diff --git a/src/views/uploadFileMiao.vue b/src/views/uploadFileMiao.vue index 783f39f..78fe4f5 100644 --- a/src/views/uploadFileMiao.vue +++ b/src/views/uploadFileMiao.vue @@ -14,7 +14,7 @@ 点击此处或者拖动文件到该区域来上传 最大支持200MB大小文件,其实只是懒得做分片上传而已 -
虽然理论上没有人有能力审查你上传的东西 +
反正没人用写这么多干什么。。。