From fca49f35cb1c47093e07213aab891c6e8ede34cf Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Tue, 9 Jul 2024 14:14:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=B1=E4=BA=AB=E6=96=87=E4=BB=B6=E5=BC=80?= =?UTF-8?q?=E5=A7=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package-lock.json | 156 ++++++++++++++++++------------- package.json | 2 +- preload.js | 35 ++++--- src/page/Home/Index/index.tsx | 14 ++- src/page/Login/index.tsx | 3 +- src/page/Meeting/index.tsx | 40 ++------ src/utils/package/agoraConfig.js | 5 - src/utils/package/signalr.ts | 27 ++++++ 8 files changed, 155 insertions(+), 127 deletions(-) delete mode 100644 src/utils/package/agoraConfig.js create mode 100644 src/utils/package/signalr.ts diff --git a/package-lock.json b/package-lock.json index 2f06b45..54a8447 100644 --- a/package-lock.json +++ b/package-lock.json @@ -40,7 +40,7 @@ "@vitejs/plugin-react": "^1.0.7", "concurrently": "^7.6.0", "cross-env": "^7.0.3", - "electron": "^31.1.0", + "electron": "^23.3.13", "typescript": "^4.5.4", "vite": "^2.8.0" } @@ -647,6 +647,16 @@ "resolved": "https://registry.npmmirror.com/@electron-forge/cli/-/cli-7.4.0.tgz", "integrity": "sha512-a+zZv3ja/IxkJzNyx4sOHSZv6DPV85S0PEVF6pcRjUpbDL5r+DxjRFsNc0Nq4UIWyFm1nw7RWoPdd9uDst4Tvg==", "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/malept" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-.electron-forge-cli?utm_medium=referral&utm_source=npm_fund" + } + ], "dependencies": { "@electron-forge/core": "7.4.0", "@electron-forge/shared-types": "7.4.0", @@ -1112,9 +1122,9 @@ } }, "node_modules/@electron/osx-sign": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/@electron/osx-sign/-/osx-sign-1.3.0.tgz", - "integrity": "sha512-TEXhxlYSDRr9JWK5nWdOv5MtuUdaZ412uxIIEQ0hLt80o0HYWtQJBlW5QmrQDMtebzATaOjKG9UfCzLyA90zWQ==", + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/@electron/osx-sign/-/osx-sign-1.3.1.tgz", + "integrity": "sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==", "dev": true, "dependencies": { "compare-version": "^0.1.2", @@ -2948,9 +2958,9 @@ } }, "node_modules/@remix-run/router": { - "version": "1.17.0", - "resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.17.0.tgz", - "integrity": "sha512-2D6XaHEVvkCn682XBnipbJjgZUU7xjLtA4dGJRBVUKpEaDYOZMENZoZjAOSb7qirxt5RupjzZxz4fK2FO+EFPw==", + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.17.1.tgz", + "integrity": "sha512-mCOMec4BKd6BRGBZeSnGiIgwsbLGp3yhVqAD8H+PxiRNEHgDpZb8J1TnrSDlg97t0ySKMQJTHCWBCmBpSmkF6Q==", "engines": { "node": ">=14.0.0" } @@ -3145,9 +3155,9 @@ "optional": true }, "node_modules/@types/node": { - "version": "20.14.9", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.14.9.tgz", - "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", + "version": "20.14.10", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.14.10.tgz", + "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", "dependencies": { "undici-types": "~5.26.4" } @@ -3418,11 +3428,11 @@ } }, "node_modules/antd": { - "version": "5.19.0", - "resolved": "https://registry.npmmirror.com/antd/-/antd-5.19.0.tgz", - "integrity": "sha512-+w+3zJUKqwU1GSXUxnKhzSGuWUqwwpHQm/voJr2X0JBdYxr9gkLhKR0HBhQjVSSJzSb86rB48fUbByHKrN05Xg==", + "version": "5.19.1", + "resolved": "https://registry.npmmirror.com/antd/-/antd-5.19.1.tgz", + "integrity": "sha512-ogGEUPaamSZ2HFGvlyLBNfxZ0c4uX5aqEIwMtmqRTPNjcLY/k+qdMmdWrMMiY1CDJ3j1in5wjzQTvREG+do65g==", "dependencies": { - "@ant-design/colors": "^7.0.2", + "@ant-design/colors": "^7.1.0", "@ant-design/cssinjs": "^1.21.0", "@ant-design/icons": "^5.3.7", "@ant-design/react-slick": "~1.1.2", @@ -3451,7 +3461,7 @@ "rc-motion": "^2.9.2", "rc-notification": "~5.6.0", "rc-pagination": "~4.2.0", - "rc-picker": "~4.6.6", + "rc-picker": "~4.6.7", "rc-progress": "~4.0.0", "rc-rate": "~2.13.0", "rc-resize-observer": "^1.4.0", @@ -5652,14 +5662,14 @@ "dev": true }, "node_modules/electron": { - "version": "31.1.0", - "resolved": "https://registry.npmmirror.com/electron/-/electron-31.1.0.tgz", - "integrity": "sha512-TBOwqLxSxnx6+pH6GMri7R3JPH2AkuGJHfWZS0p1HsmN+Qr1T9b0IRJnnehSd/3NZAmAre4ft9Ljec7zjyKFJA==", + "version": "23.3.13", + "resolved": "https://registry.npmmirror.com/electron/-/electron-23.3.13.tgz", + "integrity": "sha512-BaXtHEb+KYKLouUXlUVDa/lj9pj4F5kiE0kwFdJV84Y2EU7euIDgPthfKtchhr5MVHmjtavRMIV/zAwEiSQ9rQ==", "dev": true, "hasInstallScript": true, "dependencies": { "@electron/get": "^2.0.0", - "@types/node": "^20.9.0", + "@types/node": "^16.11.26", "extract-zip": "^2.0.1" }, "bin": { @@ -6116,9 +6126,9 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/electron-to-chromium": { - "version": "1.4.816", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", - "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==", + "version": "1.4.819", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.819.tgz", + "integrity": "sha512-8RwI6gKUokbHWcN3iRij/qpvf/wCbIVY5slODi85werwqUQwpFXM+dvUBND93Qh7SB0pW3Hlq3/wZsqQ3M9Jaw==", "dev": true }, "node_modules/electron-winstaller": { @@ -6198,6 +6208,12 @@ "global-agent": "^3.0.0" } }, + "node_modules/electron/node_modules/@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + }, "node_modules/electron/node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", @@ -11184,9 +11200,9 @@ } }, "node_modules/rc-picker": { - "version": "4.6.6", - "resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.6.6.tgz", - "integrity": "sha512-sEWARCNlodubP7/IM6nXHDDIuKZ3gYd5CpS2cYcNORa2telX3nAfllqnGSGjGEFvdtyW+IqGAVatLOmFT0lKYg==", + "version": "4.6.7", + "resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.6.7.tgz", + "integrity": "sha512-ZntxLH863jdNPZq2i6e2+1iXpRfYKHjNfUGgoObA1YExuWAnTCHpZzOkBuS43GnVcnp2MPDp78pH9OZJFd2hLw==", "dependencies": { "@babel/runtime": "^7.24.7", "@rc-component/trigger": "^2.0.0", @@ -11585,11 +11601,11 @@ } }, "node_modules/react-router": { - "version": "6.24.0", - "resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.24.0.tgz", - "integrity": "sha512-sQrgJ5bXk7vbcC4BxQxeNa5UmboFm35we1AFK0VvQaz9g0LzxEIuLOhHIoZ8rnu9BO21ishGeL9no1WB76W/eg==", + "version": "6.24.1", + "resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.24.1.tgz", + "integrity": "sha512-PTXFXGK2pyXpHzVo3rR9H7ip4lSPZZc0bHG5CARmj65fTT6qG7sTngmb6lcYu1gf3y/8KxORoy9yn59pGpCnpg==", "dependencies": { - "@remix-run/router": "1.17.0" + "@remix-run/router": "1.17.1" }, "engines": { "node": ">=14.0.0" @@ -11599,12 +11615,12 @@ } }, "node_modules/react-router-dom": { - "version": "6.24.0", - "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.24.0.tgz", - "integrity": "sha512-960sKuau6/yEwS8e+NVEidYQb1hNjAYM327gjEyXlc6r3Skf2vtwuJ2l7lssdegD2YjoKG5l8MsVyeTDlVeY8g==", + "version": "6.24.1", + "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.24.1.tgz", + "integrity": "sha512-U19KtXqooqw967Vw0Qcn5cOvrX5Ejo9ORmOtJMzYWtCT4/WOfFLIZGGsVLxcd9UkBO0mSTZtXqhZBsWlHr7+Sg==", "dependencies": { - "@remix-run/router": "1.17.0", - "react-router": "6.24.0" + "@remix-run/router": "1.17.1", + "react-router": "6.24.1" }, "engines": { "node": ">=14.0.0" @@ -15420,9 +15436,9 @@ } }, "@electron/osx-sign": { - "version": "1.3.0", - "resolved": "https://registry.npmmirror.com/@electron/osx-sign/-/osx-sign-1.3.0.tgz", - "integrity": "sha512-TEXhxlYSDRr9JWK5nWdOv5MtuUdaZ412uxIIEQ0hLt80o0HYWtQJBlW5QmrQDMtebzATaOjKG9UfCzLyA90zWQ==", + "version": "1.3.1", + "resolved": "https://registry.npmmirror.com/@electron/osx-sign/-/osx-sign-1.3.1.tgz", + "integrity": "sha512-BAfviURMHpmb1Yb50YbCxnOY0wfwaLXH5KJ4+80zS0gUkzDX3ec23naTlEqKsN+PwYn+a1cCzM7BJ4Wcd3sGzw==", "dev": true, "requires": { "compare-version": "^0.1.2", @@ -16475,9 +16491,9 @@ } }, "@remix-run/router": { - "version": "1.17.0", - "resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.17.0.tgz", - "integrity": "sha512-2D6XaHEVvkCn682XBnipbJjgZUU7xjLtA4dGJRBVUKpEaDYOZMENZoZjAOSb7qirxt5RupjzZxz4fK2FO+EFPw==" + "version": "1.17.1", + "resolved": "https://registry.npmmirror.com/@remix-run/router/-/router-1.17.1.tgz", + "integrity": "sha512-mCOMec4BKd6BRGBZeSnGiIgwsbLGp3yhVqAD8H+PxiRNEHgDpZb8J1TnrSDlg97t0ySKMQJTHCWBCmBpSmkF6Q==" }, "@rollup/pluginutils": { "version": "4.2.1", @@ -16644,9 +16660,9 @@ "optional": true }, "@types/node": { - "version": "20.14.9", - "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.14.9.tgz", - "integrity": "sha512-06OCtnTXtWOZBJlRApleWndH4JsRVs1pDCc8dLSQp+7PpUpX3ePdHyeNSFTeSe7FtKyQkrlPvHwJOW3SLd8Oyg==", + "version": "20.14.10", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-20.14.10.tgz", + "integrity": "sha512-MdiXf+nDuMvY0gJKxyfZ7/6UFsETO7mGKF54MVD/ekJS6HdFtpZFBgrh6Pseu64XTb2MLyFPlbW6hj8HYRQNOQ==", "requires": { "undici-types": "~5.26.4" } @@ -16864,11 +16880,11 @@ "integrity": "sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw==" }, "antd": { - "version": "5.19.0", - "resolved": "https://registry.npmmirror.com/antd/-/antd-5.19.0.tgz", - "integrity": "sha512-+w+3zJUKqwU1GSXUxnKhzSGuWUqwwpHQm/voJr2X0JBdYxr9gkLhKR0HBhQjVSSJzSb86rB48fUbByHKrN05Xg==", + "version": "5.19.1", + "resolved": "https://registry.npmmirror.com/antd/-/antd-5.19.1.tgz", + "integrity": "sha512-ogGEUPaamSZ2HFGvlyLBNfxZ0c4uX5aqEIwMtmqRTPNjcLY/k+qdMmdWrMMiY1CDJ3j1in5wjzQTvREG+do65g==", "requires": { - "@ant-design/colors": "^7.0.2", + "@ant-design/colors": "^7.1.0", "@ant-design/cssinjs": "^1.21.0", "@ant-design/icons": "^5.3.7", "@ant-design/react-slick": "~1.1.2", @@ -16897,7 +16913,7 @@ "rc-motion": "^2.9.2", "rc-notification": "~5.6.0", "rc-pagination": "~4.2.0", - "rc-picker": "~4.6.6", + "rc-picker": "~4.6.7", "rc-progress": "~4.0.0", "rc-rate": "~2.13.0", "rc-resize-observer": "^1.4.0", @@ -18560,13 +18576,13 @@ "dev": true }, "electron": { - "version": "31.1.0", - "resolved": "https://registry.npmmirror.com/electron/-/electron-31.1.0.tgz", - "integrity": "sha512-TBOwqLxSxnx6+pH6GMri7R3JPH2AkuGJHfWZS0p1HsmN+Qr1T9b0IRJnnehSd/3NZAmAre4ft9Ljec7zjyKFJA==", + "version": "23.3.13", + "resolved": "https://registry.npmmirror.com/electron/-/electron-23.3.13.tgz", + "integrity": "sha512-BaXtHEb+KYKLouUXlUVDa/lj9pj4F5kiE0kwFdJV84Y2EU7euIDgPthfKtchhr5MVHmjtavRMIV/zAwEiSQ9rQ==", "dev": true, "requires": { "@electron/get": "^2.0.0", - "@types/node": "^20.9.0", + "@types/node": "^16.11.26", "extract-zip": "^2.0.1" }, "dependencies": { @@ -18586,6 +18602,12 @@ "sumchecker": "^3.0.1" } }, + "@types/node": { + "version": "16.18.101", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-16.18.101.tgz", + "integrity": "sha512-AAsx9Rgz2IzG8KJ6tXd6ndNkVcu+GYB6U/SnFAaokSPNx2N7dcIIfnighYUNumvj6YS2q39Dejz5tT0NCV7CWA==", + "dev": true + }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", @@ -18951,9 +18973,9 @@ } }, "electron-to-chromium": { - "version": "1.4.816", - "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.816.tgz", - "integrity": "sha512-EKH5X5oqC6hLmiS7/vYtZHZFTNdhsYG5NVPRN6Yn0kQHNBlT59+xSM8HBy66P5fxWpKgZbPqb+diC64ng295Jw==", + "version": "1.4.819", + "resolved": "https://registry.npmmirror.com/electron-to-chromium/-/electron-to-chromium-1.4.819.tgz", + "integrity": "sha512-8RwI6gKUokbHWcN3iRij/qpvf/wCbIVY5slODi85werwqUQwpFXM+dvUBND93Qh7SB0pW3Hlq3/wZsqQ3M9Jaw==", "dev": true }, "electron-winstaller": { @@ -22647,9 +22669,9 @@ } }, "rc-picker": { - "version": "4.6.6", - "resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.6.6.tgz", - "integrity": "sha512-sEWARCNlodubP7/IM6nXHDDIuKZ3gYd5CpS2cYcNORa2telX3nAfllqnGSGjGEFvdtyW+IqGAVatLOmFT0lKYg==", + "version": "4.6.7", + "resolved": "https://registry.npmmirror.com/rc-picker/-/rc-picker-4.6.7.tgz", + "integrity": "sha512-ZntxLH863jdNPZq2i6e2+1iXpRfYKHjNfUGgoObA1YExuWAnTCHpZzOkBuS43GnVcnp2MPDp78pH9OZJFd2hLw==", "requires": { "@babel/runtime": "^7.24.7", "@rc-component/trigger": "^2.0.0", @@ -22898,20 +22920,20 @@ } }, "react-router": { - "version": "6.24.0", - "resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.24.0.tgz", - "integrity": "sha512-sQrgJ5bXk7vbcC4BxQxeNa5UmboFm35we1AFK0VvQaz9g0LzxEIuLOhHIoZ8rnu9BO21ishGeL9no1WB76W/eg==", + "version": "6.24.1", + "resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.24.1.tgz", + "integrity": "sha512-PTXFXGK2pyXpHzVo3rR9H7ip4lSPZZc0bHG5CARmj65fTT6qG7sTngmb6lcYu1gf3y/8KxORoy9yn59pGpCnpg==", "requires": { - "@remix-run/router": "1.17.0" + "@remix-run/router": "1.17.1" } }, "react-router-dom": { - "version": "6.24.0", - "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.24.0.tgz", - "integrity": "sha512-960sKuau6/yEwS8e+NVEidYQb1hNjAYM327gjEyXlc6r3Skf2vtwuJ2l7lssdegD2YjoKG5l8MsVyeTDlVeY8g==", + "version": "6.24.1", + "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.24.1.tgz", + "integrity": "sha512-U19KtXqooqw967Vw0Qcn5cOvrX5Ejo9ORmOtJMzYWtCT4/WOfFLIZGGsVLxcd9UkBO0mSTZtXqhZBsWlHr7+Sg==", "requires": { - "@remix-run/router": "1.17.0", - "react-router": "6.24.0" + "@remix-run/router": "1.17.1", + "react-router": "6.24.1" } }, "react-style-singleton": { diff --git a/package.json b/package.json index 53d1506..f852f22 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,7 @@ "@vitejs/plugin-react": "^1.0.7", "concurrently": "^7.6.0", "cross-env": "^7.0.3", - "electron": "^31.1.0", + "electron": "^23.3.13", "typescript": "^4.5.4", "vite": "^2.8.0" }, diff --git a/preload.js b/preload.js index 14577fb..2476ed4 100644 --- a/preload.js +++ b/preload.js @@ -11,12 +11,18 @@ const { MediaRecorderContainerFormat, MediaRecorderStreamType } = require("agora-electron-sdk"); -const agoraAonfig = require('./src/utils/package/agoraConfig'); const { message } = require('antd'); const rtcEngine = createAgoraRtcEngine(); +const option = { + appId: 'dcfc466a6ecb4a1f972630065dfb1e75', + token: '', + channelId: '', + userid: '', +} rtcEngine.initialize({ - appId: agoraAonfig.appid, + appId: option.appId, }); + let videoID = ''; let iMediaRecorder = ''; @@ -33,8 +39,9 @@ const leaveChannel = () => { } // 离开频道 const joinChannel = (bool) => { + console.log(option); if (bool) { - rtcEngine.joinChannel(agoraAonfig.token, agoraAonfig.channelId, 123, { + rtcEngine.joinChannel(option.token, option.channelId, option.userid, { channelProfile: ChannelProfileType.ChannelProfileLiveBroadcasting, //设置频道场景为直播场景 clientRoleType: ClientRoleType.ClientRoleBroadcaster, //用户角色 1主播 2观众 publishMicrophoneTrack: true, //设置是否发布麦克风采集到的音频 @@ -44,7 +51,7 @@ const joinChannel = (bool) => { autoSubscribeVideo: true, //设置是否自动订阅所有视频流 }); } else { - rtcEngine.joinChannel(agoraAonfig.token, agoraAonfig.channelId, 123, { + rtcEngine.joinChannel(option.token, option.channelId, option.userid, { channelProfile: ChannelProfileType.ChannelProfileLiveBroadcasting, //设置频道场景为直播场景 clientRoleType: ClientRoleType.ClientRoleBroadcaster, //设置用户角色为主播;如果要将用户角色设置为观众,保持默认值即可 publishMicrophoneTrack: true, //发布麦克风采集的音频 @@ -159,29 +166,19 @@ contextBridge.exposeInMainWorld( } ); } - videoID = `vidoe-${123}-${agoraAonfig.channelId}`; joinChannel(true) }, // 摄像头采集 setCameraCapture: () => { rtcEngine.startCameraCapture(VideoSourceType.VideoSourceCamera, {}) - videoID = `vidoe-${123}-${agoraAonfig.channelId}`; joinChannel(false) }, // 加入频道 setJoinChannel: (data) => { - // videoID = `vidoe-${data.userid}-${data.channelId}`; - rtcEngine.joinChannelEx(agoraAonfig.token, { - channelId: data.channelId, - localUid: data.userid, - }, { - autoSubscribeAudio: true, //设置是否自动订阅所有音频流 - autoSubscribeVideo: true, //设置是否自动订阅所有视频流 - publishMicrophoneTrack: false, //设置是否发布麦克风采集到的音频 - publishCameraTrack: false, //设置是否发布摄像头采集的视频 - clientRoleType: ClientRoleType.ClientRoleAudience, //用户角色 1主播 2观众 - publishScreenTrack: true, //设置是否发布屏幕采集的视频 - }); + option.token = data.token; + option.channelId = data.channelId; + option.userid = Number(data.userid); + joinChannel(false) }, // 离开频道 leaveChannel: () => { @@ -273,7 +270,7 @@ contextBridge.exposeInMainWorld( // 开始录制音视频 startRecording: () => { iMediaRecorder = rtcEngine.createMediaRecorder({ - channelId: agoraAonfig.channelId, + channelId: option.channelId, uid: 123, }) iMediaRecorder.setMediaRecorderObserver({ diff --git a/src/page/Home/Index/index.tsx b/src/page/Home/Index/index.tsx index 81de0be..15b4996 100644 --- a/src/page/Home/Index/index.tsx +++ b/src/page/Home/Index/index.tsx @@ -116,7 +116,12 @@ const Index: React.FC = () => { onClick={() => { getRoomRtcToken(item.roomNum, (res: any) => { if (res) { - navigate(`/meeting?channelId=${item.roomNum}&token=${res}`) + navigate(`/meeting`, { + state: { + channelId: item.roomNum, + token: res + } + }) } }) }} @@ -246,7 +251,12 @@ const Index: React.FC = () => { if (bool) { getRoomRtcToken(joinRoomFrom, (res: any) => { if (res) { - navigate(`/meeting?channelId=${joinRoomFrom}&token=${res}`) + navigate(`/meeting`, { + state: { + channelId: joinRoomFrom, + token: res + } + }) } }) } else { diff --git a/src/page/Login/index.tsx b/src/page/Login/index.tsx index 67f059b..f8c0500 100644 --- a/src/page/Login/index.tsx +++ b/src/page/Login/index.tsx @@ -6,7 +6,7 @@ import { Input, Button, Checkbox, message } from "antd" import { storage } from '@/utils' import { GetCheckUser, PostLogin } from '@/api/Login' import { md5 } from 'js-md5'; - +import { startSignalr } from '@/utils/package/signalr' const Login: React.FC = () => { const navigate = useNavigate(); const [accountPasswordStatus, setAccountPasswordStatus] = useState(false); @@ -118,6 +118,7 @@ const Login: React.FC = () => { width: 1200, height: 800, }) + startSignalr() navigate('/home') } }) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 0e4ce6f..7ef3781 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -8,13 +8,12 @@ import 'swiper/css/navigation'; import 'swiper/css/pagination'; import { Button, Input, Popover, Modal, Checkbox, message, Select, Slider } from "antd"; import { SearchOutlined } from '@ant-design/icons'; -import { useNavigate, useSearchParams } from 'react-router-dom'; +import { useLocation, useNavigate } from 'react-router-dom'; import { thumbImageBufferToBase64 } from '@/utils/package/base64' import { storage } from '@/utils'; -import * as signalR from '@microsoft/signalr'; const Meeting: React.FC = () => { const navigate = useNavigate(); - const [searchParams] = useSearchParams(); + const { state } = useLocation(); const [statusList, setStatusList] = useState({ userList: false, userChatList: false, @@ -97,35 +96,12 @@ const Meeting: React.FC = () => { const [videoID, setVideoID] = useState('') useEffect(() => { - // const user = JSON.parse(storage.getItem('user') as string); - // const connection = new signalR.HubConnectionBuilder().withAutomaticReconnect() - // .withUrl("http://192.168.2.8:5192/session-manage", { - // skipNegotiation: true, - // transport: signalR.HttpTransportType.WebSockets, - // accessTokenFactory: () => user.token - // }) - // .build(); - - // connection.start() - // .then(() => console.log('Connection started!')) - // .catch(err => console.error('Error while establishing connection: ', err)); - - // connection.on("GetUserId", (message) => { - // console.log(message); - // }); - - // setTimeout(() => { - // connection.invoke("GetUserId",'11111') - // .catch(err => console.error(err)); - // }, 3000); - // return () => { - // connection.stop() - // } - window.electron.setJoinChannel({ - channelId: searchParams.get('channelId') as string, - userid: searchParams.get('userid') as string, - token: searchParams.get('token') as string, - }) + const user = JSON.parse(storage.getItem('user') as string); + // window.electron.setJoinChannel({ + // channelId: state.channelId, + // userid: user.userName, + // token: state.token, + // }) }, []); const changeStatusList = (row: any, itemIndex: number, rowIndex: number): void => { diff --git a/src/utils/package/agoraConfig.js b/src/utils/package/agoraConfig.js deleted file mode 100644 index a13a017..0000000 --- a/src/utils/package/agoraConfig.js +++ /dev/null @@ -1,5 +0,0 @@ -module.exports = { - appid: "dcfc466a6ecb4a1f972630065dfb1e75", - token: "007eJxTYOAzvBU4eaX8g2nNm16Yp0YZ6SzIVbXWteo/H1tr947n0jUFhpTktGQTM7NEs9TkJJNEwzRLcyMzYwMDM9OUtCTDVHPT9MD2tIZARobaiU4MjFAI4nMzGJqbGxkbWJgam5gxMAAA0L4e4A==", - channelId: '17723085346', -} \ No newline at end of file diff --git a/src/utils/package/signalr.ts b/src/utils/package/signalr.ts new file mode 100644 index 0000000..0ae8d2d --- /dev/null +++ b/src/utils/package/signalr.ts @@ -0,0 +1,27 @@ +import * as signalR from '@microsoft/signalr'; +import storage from './storage'; +const user = JSON.parse(storage.getItem('user') as string); +let connection = null as any; +export const startSignalr = () => { + connection = new signalR.HubConnectionBuilder().withAutomaticReconnect() + .withUrl(`${import.meta.env.VITE_BASE_URL_API}/session-manage`, { + skipNegotiation: true, + transport: signalR.HttpTransportType.WebSockets, + accessTokenFactory: () => user.token + }) + .build(); + + connection.start() + .then(() => console.log('Connection started!')) + .catch((err: any) => console.error('Error while establishing connection: ', err)); +} + +export const onSignalr = (callBack: Function) => { + connection.on("GetUserId", (message: any) => { + callBack(message) + }); +} +export const onInvoke = (message: string) => { + connection.invoke("GetUserId", message) +} +