Merge branch 'mini'

# Conflicts:
#	electron/api.js
#	package.json
This commit is contained in:
gaoshuaixing
2021-01-07 17:46:23 +08:00
5 changed files with 288 additions and 219 deletions

View File

@@ -1,9 +1,9 @@
'use strict';
const request = require('superagent');
const Service = require('egg').Service;
class BaseService extends Service {
/*
* ipc call
*/
@@ -17,14 +17,8 @@ class BaseService extends Service {
return result;
}
const port = this.service.storage.getElectronIPCPort();
const url = 'localhost:' + port + '/send';
try {
const response = await request.post(url)
.send({ cmd: method, params: params })
.set('accept', 'json');
result = JSON.parse(response.text);
result = await this.service.socket.call(method, params);
} catch (err) {
this.app.logger.error('[base] [ipcCall] request error:', err);
result.err = 'request err';
@@ -33,6 +27,36 @@ class BaseService extends Service {
return result;
}
/*
* ipc call
*/
// async ipcCall(method = '', ...params) {
// let result = {
// err: null,
// data: null
// };
// if (!method) {
// result.err = 'Method does not exist';
// return result;
// }
// const port = this.service.storage.getElectronIPCPort();
// const url = 'http://localhost:' + port + '/send';
// try {
// const response = await request.post(url)
// .send({ cmd: method, params: params })
// .set('accept', 'json');
// result = JSON.parse(response.text);
// } catch (err) {
// this.app.logger.error('[base] [ipcCall] request error:', err);
// result.err = 'request err';
// }
// this.app.logger.info('[base] [ipcCall] result:', result);
// return result;
// }
}
module.exports = BaseService;

30
app/service/socket.js Normal file
View File

@@ -0,0 +1,30 @@
'use strict';
const BaseService = require('./base');
const io = require('socket.io-client');
this.instance = null;
class SocketService extends BaseService {
instance() {
if (!SocketService.instance) {
const port = this.service.storage.getElectronIPCPort();
const url = 'http://localhost:' + port;
const instance = io(url);
SocketService.instance = instance;
}
return SocketService.instance;
}
call (method = '', params) {
return new Promise((resolve, reject) => {
this.instance().emit('ipc', { cmd: method, params: params }, (response) => {
resolve(response);
});
});
}
}
module.exports = SocketService;