【发布时间】:2021-05-09 12:19:13
【问题描述】:
我使用服务器上的 node-pty、客户端上的 ng-termianl (xterm.js) 和用于通信的 socket.io 添加了一个终端到我的 Web 应用程序。我基本上可以正常工作,但我有一些问题,也许我让事情变得复杂,所以这里有一些问题:
- 我需要在 xterm 中实现哪些任务以及我应该期望 node-pty 处理什么。
- 创建一个历史缓冲区来处理向上/向下箭头。
- 创建终端提示符
- 手左右箭头
-
在 node-pty 中列出数据事件时,我得到了回显的命令、响应和新的终端行。过滤掉任何不是对发出命令的响应的数据事件的最佳方法是什么?有时回显的命令是
-
如何为 node-pty 列计数选择一个值? pty 列的数量是否需要与 xterm 中的列数相匹配?如果用户在 xterm 中键入的命令很长,则回显的命令会在发出的命令的 pty 回显中混乱。
【问题讨论】:
-
重新发明轮子需要做很多工作。另一种选择是将 xterm.js 连接到 node-pty 进程并有一个实际的终端可用。