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