diff --git a/docker/orion-ops/nginx.conf b/docker/orion-ops/nginx.conf index bc7ea797..bbe475a0 100644 --- a/docker/orion-ops/nginx.conf +++ b/docker/orion-ops/nginx.conf @@ -1,6 +1,6 @@ server { listen 80; - server_name __; + server_name localhost; # 是否启动 gzip 压缩 gzip on; diff --git a/orion-ops-service/src/main/java/com/orion/ops/constant/terminal/TerminalOperate.java b/orion-ops-service/src/main/java/com/orion/ops/constant/terminal/TerminalOperate.java index e4c70b43..e49f6d57 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/constant/terminal/TerminalOperate.java +++ b/orion-ops-service/src/main/java/com/orion/ops/constant/terminal/TerminalOperate.java @@ -39,10 +39,15 @@ public enum TerminalOperate { */ COMMAND("4", true), + /** + * ctrl + e + */ + NOP("5", false), + /** * 关闭连接 */ - DISCONNECT("5", false), + DISCONNECT("6", false), ; diff --git a/orion-ops-service/src/main/java/com/orion/ops/handler/terminal/TerminalOperateHandler.java b/orion-ops-service/src/main/java/com/orion/ops/handler/terminal/TerminalOperateHandler.java index 6ffbbce0..74e0e478 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/handler/terminal/TerminalOperateHandler.java +++ b/orion-ops-service/src/main/java/com/orion/ops/handler/terminal/TerminalOperateHandler.java @@ -251,6 +251,8 @@ public class TerminalOperateHandler implements IOperateHandler { case COMMAND: executor.write(Strings.bytes(body)); executor.write(new byte[]{Letters.LF}); + case NOP: + executor.write(new byte[]{5, 10}); return; case DISCONNECT: WebSockets.close(session, WsCloseCode.DISCONNECT); diff --git a/orion-ops-service/src/main/java/com/orion/ops/handler/terminal/watcher/TerminalWatcherHandler.java b/orion-ops-service/src/main/java/com/orion/ops/handler/terminal/watcher/TerminalWatcherHandler.java index 1d8574c7..fab70e4f 100644 --- a/orion-ops-service/src/main/java/com/orion/ops/handler/terminal/watcher/TerminalWatcherHandler.java +++ b/orion-ops-service/src/main/java/com/orion/ops/handler/terminal/watcher/TerminalWatcherHandler.java @@ -65,7 +65,7 @@ public class TerminalWatcherHandler implements WebSocketHandler { this.auth(session, body); return; } - if (operate != TerminalOperate.KEY) { + if (operate != TerminalOperate.KEY || operate != TerminalOperate.NOP) { return; } // 检查连接 diff --git a/orion-ops-vue/src/components/terminal/TerminalMain.vue b/orion-ops-vue/src/components/terminal/TerminalMain.vue index fd5069d3..8a6dc19f 100644 --- a/orion-ops-vue/src/components/terminal/TerminalMain.vue +++ b/orion-ops-vue/src/components/terminal/TerminalMain.vue @@ -307,11 +307,11 @@ export default { // 注册自定义按键 this.term.attachCustomKeyEventHandler((ev) => { // 注册全选键 ctrl + a - if (ev.keyCode === 65 && ev.ctrlKey && ev.type === 'keydown') { - setTimeout(() => { - this.term.selectAll() - }, 10) - } + // if (ev.keyCode === 65 && ev.ctrlKey && ev.type === 'keydown') { + // setTimeout(() => { + // this.term.selectAll() + // }, 10) + // } // 注册搜索键 ctrl + shift + f if (ev.keyCode === 70 && ev.ctrlKey && ev.shiftKey && ev.type === 'keydown') { this.$refs.search.open() diff --git a/orion-ops-vue/src/components/terminal/TerminalWatcherModal.vue b/orion-ops-vue/src/components/terminal/TerminalWatcherModal.vue new file mode 100644 index 00000000..77eab697 --- /dev/null +++ b/orion-ops-vue/src/components/terminal/TerminalWatcherModal.vue @@ -0,0 +1,188 @@ + + + + + diff --git a/orion-ops-vue/src/lib/api.js b/orion-ops-vue/src/lib/api.js index abca166c..e23ac16f 100644 --- a/orion-ops-vue/src/lib/api.js +++ b/orion-ops-vue/src/lib/api.js @@ -12,6 +12,13 @@ const $ws = { return `ws://${window.location.host}/orion/keep-alive/machine/terminal/${param.token}` }, + /** + * 机器终端监视 + */ + terminalWatcher: param => { + return `ws://${window.location.host}/orion/keep-alive/watcher/terminal/${param.token}` + }, + /** * sftp传输列表 */ @@ -305,6 +312,15 @@ const $api = { }) }, + /** + * 获取终端监视token + */ + getTerminalWatcherToken: param => { + return $http.$post('/terminal/manager/watcher', param, { + loading: '正在建立连接...' + }) + }, + /** * sftp 打开连接 */ diff --git a/orion-ops-vue/src/lib/enum.js b/orion-ops-vue/src/lib/enum.js index bbd5101d..c31c5639 100644 --- a/orion-ops-vue/src/lib/enum.js +++ b/orion-ops-vue/src/lib/enum.js @@ -30,8 +30,11 @@ export const TERMINAL_OPERATOR = { COMMAND: { value: '4' }, - DISCONNECT: { + NOP: { value: '5' + }, + DISCONNECT: { + value: '6' } } @@ -67,20 +70,16 @@ export const TERMINAL_STATUS = { */ export const WS_PROTOCOL = { OK: { - value: '0', - label: 'ok' + value: '0' }, CONNECTED: { - value: '1', - label: 'connected' + value: '1' }, PONG: { - value: '2', - label: 'pong' + value: '2' }, ERROR: { - value: '3', - label: 'error' + value: '3' } } diff --git a/orion-ops-vue/src/views/machine/MachineTerminalSession.vue b/orion-ops-vue/src/views/machine/MachineTerminalSession.vue index 73c497b7..bcb470d4 100644 --- a/orion-ops-vue/src/views/machine/MachineTerminalSession.vue +++ b/orion-ops-vue/src/views/machine/MachineTerminalSession.vue @@ -45,22 +45,25 @@ + +