WebSocket: добавлен метод get-config
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import axios from 'axios';
|
||||
import wsc from './webSocketConnection';
|
||||
|
||||
const api = axios.create({
|
||||
baseURL: '/api'
|
||||
@@ -6,9 +7,20 @@ const api = axios.create({
|
||||
|
||||
class Misc {
|
||||
async loadConfig() {
|
||||
const response = await api.post('/config', {params: [
|
||||
|
||||
const query = {params: [
|
||||
'name', 'version', 'mode', 'maxUploadFileSize', 'useExternalBookConverter', 'branch',
|
||||
]});
|
||||
]};
|
||||
|
||||
try {
|
||||
await wsc.open();
|
||||
return await wsc.message(wsc.send(Object.assign({action: 'get-config'}, query)));
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
|
||||
//если WebSocket проблема, работаем по http
|
||||
const response = await api.post('/config', query);
|
||||
return response.data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import axios from 'axios';
|
||||
import * as utils from '../share/utils';
|
||||
import WebSocketConnection from './WebSocketConnection';
|
||||
import wsc from './webSocketConnection';
|
||||
|
||||
const api = axios.create({
|
||||
baseURL: '/api/reader'
|
||||
@@ -12,7 +12,6 @@ const workerApi = axios.create({
|
||||
|
||||
class Reader {
|
||||
constructor() {
|
||||
this.wsc = new WebSocketConnection();
|
||||
}
|
||||
|
||||
async getStateFinish(workerId, callback) {
|
||||
@@ -21,7 +20,6 @@ class Reader {
|
||||
let response = {};
|
||||
|
||||
try {
|
||||
const wsc = this.wsc;
|
||||
await wsc.open();
|
||||
const requestId = wsc.send({action: 'worker-get-state-finish', workerId});
|
||||
|
||||
@@ -35,11 +33,10 @@ class Reader {
|
||||
}
|
||||
return response;
|
||||
} catch (e) {
|
||||
//
|
||||
console.error(e);
|
||||
}
|
||||
|
||||
//с WebSocket проблема, проверяем по http
|
||||
//если WebSocket проблема, работаем по http
|
||||
const refreshPause = 500;
|
||||
let i = 0;
|
||||
response = {};
|
||||
|
||||
@@ -169,4 +169,4 @@ class WebSocketConnection {
|
||||
}
|
||||
}
|
||||
|
||||
export default WebSocketConnection;
|
||||
export default new WebSocketConnection();
|
||||
@@ -1,4 +1,6 @@
|
||||
const WebSocket = require ('ws');
|
||||
const _ = require('lodash');
|
||||
|
||||
const WorkerState = require('../core/WorkerState');//singleton
|
||||
const utils = require('../core/utils');
|
||||
|
||||
@@ -42,6 +44,8 @@ class WebSocketController {
|
||||
switch (req.action) {
|
||||
case 'test':
|
||||
this.test(req, ws); break;
|
||||
case 'get-config':
|
||||
this.getConfig(req, ws); break;
|
||||
case 'worker-get-state':
|
||||
this.workerGetState(req, ws); break;
|
||||
case 'worker-get-state-finish':
|
||||
@@ -70,6 +74,14 @@ class WebSocketController {
|
||||
this.send({message: 'Liberama project is awesome'}, req, ws);
|
||||
}
|
||||
|
||||
async getConfig(req, ws) {
|
||||
if (Array.isArray(req.params)) {
|
||||
this.send(_.pick(this.config, req.params), req, ws);
|
||||
} else {
|
||||
throw new Error('params is not an array');
|
||||
}
|
||||
}
|
||||
|
||||
async workerGetState(req, ws) {
|
||||
if (!req.workerId)
|
||||
throw new Error(`key 'workerId' is wrong`);
|
||||
|
||||
Reference in New Issue
Block a user