[xterm]取消xterm-addon-attach默认发送
问题:当我引入了
xterm-addon-attach
初始化ws
连接后,会自动监听键盘按键,进行发送,这样我ws
就没办法判断心跳或自定义信息了
- 使用版本
工具 | 版本 |
---|---|
xterm | 5.3.0 |
xterm-addon-attach | 0.9.0 |
- 问题代码
import { Terminal } from "xterm";
import { AttachAddon } from "xterm-addon-attach";
import "xterm/css/xterm.css";
const ws = new WebSocket('url');
const term = new Terminal({
fontSize: 14,
cursorBlink: true,
});
// 这里是ws相关开启、异常、关闭监听,不赘述
const attachAddon = new AttachAddon(ws);
term.loadAddon(attachAddon);
term.open(document.getElementById("xterm"));
- 优化代码
通过添加
bidirectional: false
,禁止默认发送
import { Terminal } from "xterm";
import { AttachAddon } from "xterm-addon-attach";
import "xterm/css/xterm.css";
const ws = new WebSocket('url');
const term = new Terminal({
fontSize: 14,
cursorBlink: true,
});
// 这里是ws相关开启、异常、关闭监听,不赘述
const attachAddon = new AttachAddon(ws, {
bidirectional: false,
});
term.loadAddon(attachAddon);
// 监听终端输入事件
term.onData((data) => {
console.log("监听Data", data);
// 这里实现自定义发送,可以结合自己的数据结构,套一层json等
ws.send(data);
});
term.open(document.getElementById("xterm"));
AttachAddon
配置