问题标签 [xtermjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
49 浏览

xtermjs - xtermjs fit 插件导致行覆盖前一行

fit 插件会导致 xtermjs 中的一行覆盖之前的行。具体来说,当用户键入时,半行被填满,然后字符开始从该行的左侧出现并覆盖之前写在那里的字符。

0 投票
1 回答
687 浏览

javascript - 将 xterm.js 与插件一起使用:term-addon-attach

0 投票
0 回答
206 浏览

node.js - 如何将 node-pty 重新初始化为不同的 shell 类型?

我正在使用 xterm.js、react 和 node-pty 设置浏览器内终端。我已经通过 websockets 在服务器上运行了 node-pty 进程。终端实际工作,它在反应 UI 中可见。我可以使用以下方法将终端初始化为nodepython3首次加载:

我可以像这样杀死这个过程:

只要在 UI 的终端中输入字符,就会触发此侦听器。

这感觉不像是处理这个问题的惯用方式,但我想做的是从 UI 中的 websocket 发出一条消息,这取决于反应状态,并node-pty使用不同的初始 shell 重新生成一个新终端,即从 切换nodepython3

我发现销毁终端所在的 HTML 节点会导致open服务器上的侦听器再次触发,但我认为重新打开时不可能包含消息。

我的问题是,如何重新生成node-pty进程并动态更改 shell 类型?

0 投票
0 回答
177 浏览

javascript - 可以在 nodejs 服务器端使用 xterm.js 吗?

我正在 NodeJs 上创建一个多工终端,用于将数据渲染到 StdOut 我正在使用terminal.js,但它有点小故障,所以我决定使用xterm.js一个乞丐社区如何处理它。

但是当我尝试在 NodeJs 上导入 xterm.js 时,会出现此错误:

那么,在服务器端(nodejs)使用 Xterm.Js 是不是很遥远?

0 投票
1 回答
218 浏览

node.js - 使用 socket.io 流式传输交互式 shell 会话

我有 3 个组件device和.serverfrontend (admin)

服务器

使用 2 个命名空间/admin/client.
如果来自命名空间的套接字/admin发送数据,则服务器将其传递给/client命名空间。如果来自命名空间的套接字/client发送数据,则服务器将其传递给/admin命名空间。

设备

用于socket.io-client连接socket.io服务器。
使用 启动交互式 shell 会话node-pty

前端

最后,我有了用于xterm.js在浏览器中创建终端的前端。我正在使用vue. 浏览器客户端也连接到命名空间socket.io上的服务器/admin。基本上我有这个:

问题

❌ 启动 pty 会话似乎可以工作,至少现在报告了错误。然而,似乎onData侦听器回调从未被触发,即使我有ptyProcess.write()什么东西。

❌ 从一路获取输入xterm到设备ptyProcess.write似乎不起作用。我可以看到通过 socket.io 套接字一直传递到设备的数据。但从那里什么也没有发生。我想念什么?我也没有在xterm窗口中看到我的输入。

0 投票
1 回答
83 浏览

bash - 如何使用 node-pty 创建 bash shell?

我的操作系统是windows。我想使用 xterm 和 node-pty 创建一个 bash shell。有这行代码:

this.shell = os.platform() === 'win32' ? 'powershell.exe' : 'bash';

使用它在浏览器中呈现终端。现在假设如果我写:

this.shell = os.platform() === 'win32' ? 'bash' : 'powershell.exe';
或者 this.shell = os.platform() === 'linux' ? 'powershell.exe' : 'bash';

为什么不渲染 bash shell。它给了我这个错误:

对不起,我对这个问题很陌生......

0 投票
0 回答
81 浏览

nginx - Nginx 用作反向代理时删除 ansi 转义码

我正在使用xterm.jschalk.js在我用作个人网站的 Web 终端中创建彩色字符串。

当我在本地运行它时,它会根据需要工作:

在此处输入图像描述

但是当我在生产中运行它时,颜色消失了:

在此处输入图像描述

要将xterm.js与后端连接,我使用socket.io,当我调试它时,我看到了客户端收到的差异

  • 当地的:
  • 与产品:

正如您在 prod 中看到的,所有由chalk.js添加的 ANSI 转义码都消失了。

我的 Nginx 服务器配置为反向代理以访问我的 NodeJS 的后端,我怀疑配置错误导致 Nginx “吃掉”所有 ANSI 转义码。

我需要在我的 Nginx 配置文件中更改什么以通过 ANSI 转义码?


  • 我的 Nginx 配置在这里(它是我的域的配置enabled-sitednot nginx.conf
  • 我的nginx.conf
0 投票
0 回答
97 浏览

web-applications - 需要在我的 Web 应用程序中嵌入 SSH 终端或基于 Web 的终端,它可以通信并响应我输入的命令

我在我的网络应用程序中使用 Angular。为了实现终端,我使用了https://xtermjs.orgNgTerminal组件。使用这两个组件,我可以显示一个终端窗口,如本演示https://qwefgh90.github.io/ng-terminal中所示,但这没什么,因为它没有执行我输入的任何命令。我希望这个终端与计算机通信并执行命令。

例如:如果我输入 ipconfig 那么终端应该显示计算机 IP

我已经做了很多研发,并且知道可以使用 WebSocket 来实现它,我使用它但仍然没有运气。

非常感谢您浏览我的问题,请分享您的宝贵想法和建议,以便我可以创建响应式 Web 终端 SSH。谢谢

0 投票
0 回答
25 浏览

node.js - xtermjs 如何从 webhook 或其他连接类型链接服务器和客户端

我了解您使用 node-pty 作为后端,使用 xterm 作为前端,有时附加连接,但我不知道如何建立连接 我确实查看了我看到的其他类似问题,但他们要么没有回答,要么说有html 中的客户端和主 js 中的服务器,但我希望服务器能够连接到您应该看到的文件,以了解我在做什么和安全。我也记账了,因为我找不到答案,所以这就是我是新手的原因。

0 投票
0 回答
82 浏览

reactjs - 以编程方式将输入传递给基于 Web 的终端

我想使用 xtermjs、socket.io、ssh2 等库在 React App 上实现基于 Web 的终端。我发现了很多在某种程度上模拟 TTY 行为的工作示例,但我确实有一个特定要求:虽然浏览器上的模拟终端接受并处理用户输入(通过键盘/鼠标事件),但它也应该接受其他方式的输入。例如,您可以有一个发送“ls”命令的按钮,并带有一个用于“Enter”效果的新行。

我意识到,像shellinabox这样的库服务于网页,但不支持对套接字流的干预。还有诸如湿的解决方案等等。为了完整起见,我想提供一些链接,希望有人指出我可能走在正确的轨道上:

我意识到我把我的问题展开了一点,但希望我能够解释我的挑战是什么。我觉得我可以以某种方式利用合成事件将输入传递给基于 Web 的终端,但不幸的是,我缺乏关于这样一个系统的高级知识来将所有这些放在一起。我将不胜感激有关如何实现这些目标的任何指示。

提前致谢!