@@ -33,12 +45,13 @@ const Example = (props) => {
}
function mapStateToProps (state) {
- const { auth, global, members } = state;
+ const { auth, global, members, webSocket } = state;
return {
loading: members.isRequesting,
user: auth.user,
actions: global.actions,
- members: members.data
+ members: members.data,
+ socket: webSocket.socket
};
}
From caa85094bda5fb2f8228459ff56ed02917976793 Mon Sep 17 00:00:00 2001
From: yuan_yi <1650192445@qq.com>
Date: Fri, 6 May 2022 17:12:48 +0800
Subject: [PATCH 2/6] =?UTF-8?q?socket=20=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
code/VideoAccess-VCMP/api/app/lib/index.js | 35 +++++++------
.../api/app/lib/models/ax_project.js | 40 ++++++++++++++
.../client/src/layout/actions/webSocket.js | 52 ++++++++++---------
code/VideoAccess-VCMP/web/package.json | 8 +--
4 files changed, 90 insertions(+), 45 deletions(-)
create mode 100644 code/VideoAccess-VCMP/api/app/lib/models/ax_project.js
diff --git a/code/VideoAccess-VCMP/api/app/lib/index.js b/code/VideoAccess-VCMP/api/app/lib/index.js
index c135a43..96b161e 100644
--- a/code/VideoAccess-VCMP/api/app/lib/index.js
+++ b/code/VideoAccess-VCMP/api/app/lib/index.js
@@ -8,27 +8,28 @@ const authenticator = require('./middlewares/authenticator');
const businessRest = require('./middlewares/business-rest');
module.exports.entry = function (app, router, opts) {
- app.fs.logger.log('info', '[FS-AUTH]', 'Inject auth and api mv into router.');
+ app.fs.logger.log('info', '[FS-AUTH]', 'Inject auth and api mv into router.');
- app.fs.api = app.fs.api || {};
- app.fs.api.authAttr = app.fs.api.authAttr || {};
- app.fs.api.logAttr = app.fs.api.logAttr || {};
+ app.fs.api = app.fs.api || {};
+ app.fs.api.authAttr = app.fs.api.authAttr || {};
+ app.fs.api.logAttr = app.fs.api.logAttr || {};
- // 顺序固定 ↓
- redisConnect(app, opts)
- socketConect(app, opts)
-
- router.use(authenticator(app, opts));
- // router.use(businessRest(app, router, opts));
- // router.use(apiLog(app, opts));
+ // 顺序固定 ↓
+ redisConnect(app, opts)
+ socketConect(app, opts)
- router = routes(app, router, opts);
+ router.use(authenticator(app, opts));
+ // router.use(businessRest(app, router, opts));
+ // router.use(apiLog(app, opts));
+
+ router = routes(app, router, opts);
};
module.exports.models = function (dc) { // dc = { orm: Sequelize对象, ORM: Sequelize, models: {} }
- require('./models/camera_ability')(dc);
- require('./models/camera_kind')(dc);
- require('./models/camera')(dc);
- require('./models/nvr')(dc);
- require('./models/vender')(dc);
+ require('./models/camera_ability')(dc);
+ require('./models/camera_kind')(dc);
+ require('./models/camera')(dc);
+ require('./models/nvr')(dc);
+ require('./models/vender')(dc);
+ require('./models/ax_project')(dc);
};
diff --git a/code/VideoAccess-VCMP/api/app/lib/models/ax_project.js b/code/VideoAccess-VCMP/api/app/lib/models/ax_project.js
new file mode 100644
index 0000000..b8e8844
--- /dev/null
+++ b/code/VideoAccess-VCMP/api/app/lib/models/ax_project.js
@@ -0,0 +1,40 @@
+/* eslint-disable*/
+'use strict';
+
+module.exports = dc => {
+ const DataTypes = dc.ORM;
+ const sequelize = dc.orm;
+ const AxProject = sequelize.define("axProject", {
+ id: {
+ type: DataTypes.INTEGER,
+ allowNull: false,
+ defaultValue: null,
+ comment: null,
+ primaryKey: true,
+ field: "id",
+ autoIncrement: false,
+ unique: "ax_project_id_uindex"
+ },
+ name: {
+ type: DataTypes.STRING,
+ allowNull: false,
+ defaultValue: null,
+ comment: null,
+ primaryKey: false,
+ field: "name",
+ autoIncrement: false
+ }
+ }, {
+ tableName: "ax_project",
+ comment: "",
+ indexes: []
+ });
+
+ const Nvr = dc.models.Nvr;
+
+ // Nvr.belongsTo(User, { foreignKey: 'userId', targetKey: 'id' });
+ // User.hasMany(Nvr, { foreignKey: 'userId', sourceKey: 'id' });
+
+ dc.models.AxProject = AxProject;
+ return AxProject;
+};
\ No newline at end of file
diff --git a/code/VideoAccess-VCMP/web/client/src/layout/actions/webSocket.js b/code/VideoAccess-VCMP/web/client/src/layout/actions/webSocket.js
index 8a5fe12..b93b78a 100644
--- a/code/VideoAccess-VCMP/web/client/src/layout/actions/webSocket.js
+++ b/code/VideoAccess-VCMP/web/client/src/layout/actions/webSocket.js
@@ -3,29 +3,31 @@ import io from 'socket.io-client';
export const INIT_WEB_SOCKET = 'INIT_WEB_SOCKET'
export function initWebSocket ({ ioUrl, token }) {
- if (!ioUrl) {
- ioUrl = localStorage.getItem('apiRoot')
- }
- if (!token) {
- const user = sessionStorage.getItem('user')
- token = JSON.parse(user).token
- }
- if (!ioUrl || !token) {
- return {
- type: '',
- }
- }
- return dispatch => {
- const socket = io(ioUrl, {
- query: {
- token: token
- }
- });
- dispatch({
- type: INIT_WEB_SOCKET,
- payload: {
- socket: socket
- }
- })
- }
+ if (!ioUrl) {
+ ioUrl = localStorage.getItem('apiRoot')
+ }
+ if (!token) {
+ const user = sessionStorage.getItem('user')
+ if (user) {
+ token = JSON.parse(user).token
+ }
+ }
+ if (!ioUrl || !token) {
+ return {
+ type: '',
+ }
+ }
+ return dispatch => {
+ const socket = io(ioUrl, {
+ query: {
+ token: token
+ }
+ });
+ dispatch({
+ type: INIT_WEB_SOCKET,
+ payload: {
+ socket: socket
+ }
+ })
+ }
}
\ No newline at end of file
diff --git a/code/VideoAccess-VCMP/web/package.json b/code/VideoAccess-VCMP/web/package.json
index 36aeda8..aa18208 100644
--- a/code/VideoAccess-VCMP/web/package.json
+++ b/code/VideoAccess-VCMP/web/package.json
@@ -44,10 +44,12 @@
"redux": "^4.0.5",
"redux-thunk": "^2.3.0",
"style-loader": "^2.0.0",
+ "vite": "^2.9.5",
"webpack": "^5.3.2",
"webpack-bundle-analyzer": "^4.1.0",
"webpack-cli": "^4.2.0",
"webpack-dev-middleware": "^4.0.2",
+ "webpack-dev-server": "^3.11.2",
"webpack-hot-middleware": "^2.25.0"
},
"dependencies": {
@@ -66,8 +68,8 @@
"moment": "^2.22.0",
"npm": "^7.20.6",
"perfect-scrollbar": "^1.5.5",
- "superagent": "^6.1.0",
- "vite": "^2.9.5",
- "webpack-dev-server": "^3.11.2"
+ "socket.io-client": "^4.5.0",
+ "socket.io-parser": "^4.2.0",
+ "superagent": "^6.1.0"
}
}
From 9e8de3ff471baf1147ef95e8e5cf2a1f162c91aa Mon Sep 17 00:00:00 2001
From: yuan_yi <1650192445@qq.com>
Date: Fri, 6 May 2022 17:31:15 +0800
Subject: [PATCH 3/6] =?UTF-8?q?socket=20=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../api/app/lib/service/socket.js | 37 +++++++++----------
1 file changed, 18 insertions(+), 19 deletions(-)
diff --git a/code/VideoAccess-VCMP/api/app/lib/service/socket.js b/code/VideoAccess-VCMP/api/app/lib/service/socket.js
index 28957f3..e15f6ef 100644
--- a/code/VideoAccess-VCMP/api/app/lib/service/socket.js
+++ b/code/VideoAccess-VCMP/api/app/lib/service/socket.js
@@ -2,25 +2,24 @@
module.exports = async function factory (app, opts) {
- app.socket.on('connection', async (socket) => {
- console.info('WEB_SOCKET ' + socket.handshake.query.token + ' 已连接');
+ app.socket.on('connection', async (socket) => {
+ console.info('WEB_SOCKET ' + socket.handshake.query.token + ' 已连接:' + socket.id);
+ socket.on('disconnecting', async (reason) => {
+ console.info('WEB_SOCKET ' + socket.handshake.query.token + ' 已断开连接:' + reason);
+ })
+ })
- socket.on('disconnecting', async (reason) => {
- console.info('WEB_SOCKET ' + socket.handshake.query.token + ' 已断开连接:' + reason);
- })
- })
+ // 使用测试 保持链接
+ // setInterval(async () => {
+ // // const { connected } = app.socket.sockets
+ // // const roomId = 'ROOM_' + Math.random()
+ // // if (connected) {
+ // // for (let c in connected) {
+ // // connected[c].join(roomId)
+ // // }
+ // // app.socket.to(roomId).emit('TEST', { someProperty: `【星域 ROOM:${roomId}】呼叫自然选择号!!!`, })
+ // // }
- // 使用测试
- // setInterval(async () => {
- // const { connected } = app.socket.sockets
- // const roomId = 'ROOM_' + Math.random()
- // if (connected) {
- // for (let c in connected) {
- // connected[c].join(roomId)
- // }
- // app.socket.to(roomId).emit('TEST', { someProperty: `【星域 ROOM:${roomId}】呼叫自然选择号!!!`, })
- // }
-
- // app.socket.emit('TEST', { someProperty: '【广播】呼叫青铜时代号!!!', })
- // }, 1000)
+ // app.socket.emit('TEST', { someProperty: '【广播】呼叫青铜时代号!!!', })
+ // }, 1000)
}
From 224bc451748107dfa61f2cc71813ea9964406eb5 Mon Sep 17 00:00:00 2001
From: yuan_yi <1650192445@qq.com>
Date: Sat, 7 May 2022 09:00:24 +0800
Subject: [PATCH 4/6] =?UTF-8?q?socket=20=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../VideoAccess-VCMP/web/client/src/layout/actions/webSocket.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/VideoAccess-VCMP/web/client/src/layout/actions/webSocket.js b/code/VideoAccess-VCMP/web/client/src/layout/actions/webSocket.js
index b93b78a..fa1a321 100644
--- a/code/VideoAccess-VCMP/web/client/src/layout/actions/webSocket.js
+++ b/code/VideoAccess-VCMP/web/client/src/layout/actions/webSocket.js
@@ -21,7 +21,7 @@ export function initWebSocket ({ ioUrl, token }) {
const socket = io(ioUrl, {
query: {
token: token
- }
+ },
});
dispatch({
type: INIT_WEB_SOCKET,
From b4f2dc62e3b107c28ae7008b928ba063233b5168 Mon Sep 17 00:00:00 2001
From: deartibers <947466799@qq.com>
Date: Sat, 7 May 2022 11:33:40 +0800
Subject: [PATCH 5/6] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E6=A0=B7=E5=BC=8F?=
=?UTF-8?q?=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../images/background/loginBackground.png | Bin 0 -> 1954109 bytes
.../assets/images/background/loginbg.png | Bin 0 -> 18166 bytes
.../assets/images/background/password.png | Bin 0 -> 538 bytes
.../assets/images/background/username.png | Bin 0 -> 549 bytes
.../src/sections/auth/containers/login.jsx | 48 ++++++++++++++----
.../src/sections/auth/containers/login.less | 7 +++
.../components/nvrModal.jsx | 5 +-
7 files changed, 46 insertions(+), 14 deletions(-)
create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/background/loginBackground.png
create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/background/loginbg.png
create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/background/password.png
create mode 100644 code/VideoAccess-VCMP/web/client/assets/images/background/username.png
create mode 100644 code/VideoAccess-VCMP/web/client/src/sections/auth/containers/login.less
diff --git a/code/VideoAccess-VCMP/web/client/assets/images/background/loginBackground.png b/code/VideoAccess-VCMP/web/client/assets/images/background/loginBackground.png
new file mode 100644
index 0000000000000000000000000000000000000000..39946d77a6773c5a6ffe76fe186238d346eac74f
GIT binary patch
literal 1954109
zcmagGcTm&e@;xkwh=NoBk={|NqV%G)Py|Gz_aYr4H9!c6N^eF`Iw&Z;_m%+CyY!yW
zI|KqDbl!09_xInGcP29#U}m$=?%A_v_xX^p*BXF(cOTxpapT546=j7tH*Va9+_*s?
zMnrh^8;f=a+#8
Ps3^RA>utIPoBg^}^R+PEpb~RY%-z@dOT2EJ
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
&mX;#5M!5LbgSGdc~BVmyx0sDIGm#QG=h+A
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 |