Browse Source

socket 优化

pull/3/head
yuan_yi 3 years ago
parent
commit
caa85094bd
  1. 33
      code/VideoAccess-VCMP/api/app/lib/index.js
  2. 40
      code/VideoAccess-VCMP/api/app/lib/models/ax_project.js
  3. 52
      code/VideoAccess-VCMP/web/client/src/layout/actions/webSocket.js
  4. 8
      code/VideoAccess-VCMP/web/package.json

33
code/VideoAccess-VCMP/api/app/lib/index.js

@ -8,27 +8,28 @@ const authenticator = require('./middlewares/authenticator');
const businessRest = require('./middlewares/business-rest'); const businessRest = require('./middlewares/business-rest');
module.exports.entry = function (app, router, opts) { 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 = app.fs.api || {};
app.fs.api.authAttr = app.fs.api.authAttr || {}; app.fs.api.authAttr = app.fs.api.authAttr || {};
app.fs.api.logAttr = app.fs.api.logAttr || {}; app.fs.api.logAttr = app.fs.api.logAttr || {};
// 顺序固定 ↓ // 顺序固定 ↓
redisConnect(app, opts) redisConnect(app, opts)
socketConect(app, opts) socketConect(app, opts)
router.use(authenticator(app, opts)); router.use(authenticator(app, opts));
// router.use(businessRest(app, router, opts)); // router.use(businessRest(app, router, opts));
// router.use(apiLog(app, opts)); // router.use(apiLog(app, opts));
router = routes(app, router, opts); router = routes(app, router, opts);
}; };
module.exports.models = function (dc) { // dc = { orm: Sequelize对象, ORM: Sequelize, models: {} } module.exports.models = function (dc) { // dc = { orm: Sequelize对象, ORM: Sequelize, models: {} }
require('./models/camera_ability')(dc); require('./models/camera_ability')(dc);
require('./models/camera_kind')(dc); require('./models/camera_kind')(dc);
require('./models/camera')(dc); require('./models/camera')(dc);
require('./models/nvr')(dc); require('./models/nvr')(dc);
require('./models/vender')(dc); require('./models/vender')(dc);
require('./models/ax_project')(dc);
}; };

40
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;
};

52
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 const INIT_WEB_SOCKET = 'INIT_WEB_SOCKET'
export function initWebSocket ({ ioUrl, token }) { export function initWebSocket ({ ioUrl, token }) {
if (!ioUrl) { if (!ioUrl) {
ioUrl = localStorage.getItem('apiRoot') ioUrl = localStorage.getItem('apiRoot')
} }
if (!token) { if (!token) {
const user = sessionStorage.getItem('user') const user = sessionStorage.getItem('user')
token = JSON.parse(user).token if (user) {
} token = JSON.parse(user).token
if (!ioUrl || !token) { }
return { }
type: '', if (!ioUrl || !token) {
} return {
} type: '',
return dispatch => { }
const socket = io(ioUrl, { }
query: { return dispatch => {
token: token const socket = io(ioUrl, {
} query: {
}); token: token
dispatch({ }
type: INIT_WEB_SOCKET, });
payload: { dispatch({
socket: socket type: INIT_WEB_SOCKET,
} payload: {
}) socket: socket
} }
})
}
} }

8
code/VideoAccess-VCMP/web/package.json

@ -44,10 +44,12 @@
"redux": "^4.0.5", "redux": "^4.0.5",
"redux-thunk": "^2.3.0", "redux-thunk": "^2.3.0",
"style-loader": "^2.0.0", "style-loader": "^2.0.0",
"vite": "^2.9.5",
"webpack": "^5.3.2", "webpack": "^5.3.2",
"webpack-bundle-analyzer": "^4.1.0", "webpack-bundle-analyzer": "^4.1.0",
"webpack-cli": "^4.2.0", "webpack-cli": "^4.2.0",
"webpack-dev-middleware": "^4.0.2", "webpack-dev-middleware": "^4.0.2",
"webpack-dev-server": "^3.11.2",
"webpack-hot-middleware": "^2.25.0" "webpack-hot-middleware": "^2.25.0"
}, },
"dependencies": { "dependencies": {
@ -66,8 +68,8 @@
"moment": "^2.22.0", "moment": "^2.22.0",
"npm": "^7.20.6", "npm": "^7.20.6",
"perfect-scrollbar": "^1.5.5", "perfect-scrollbar": "^1.5.5",
"superagent": "^6.1.0", "socket.io-client": "^4.5.0",
"vite": "^2.9.5", "socket.io-parser": "^4.2.0",
"webpack-dev-server": "^3.11.2" "superagent": "^6.1.0"
} }
} }

Loading…
Cancel
Save