我有一个Vue应用程序,它有一个xterm组件,与之并行,我使用ssh2/shell作为带有全局Vue插件的客户端
我可以通过ssh插件连接到xterm组件上的服务器,并通过stream.on('data', cb)
事件将ssh流写入xterm
到目前为止还不错,效果很好。
我的问题从这里开始。。。如果我切换到另一个Vue路由并返回到我的xterm组件
xterm组件被重新创建,当然是空的。有没有一种方法可以访问旧的流数据,以及我从现有流对象(它存在于我的全局Vue插件中(中离开组件后错过的流数据?我只需要用ssh连接的最后1000个字母初始化xterm组件。
我只需在"on Data"事件上调用一个单独的函数,并将数据/块复制到字符串中。当我重新创建我的终端组件时,我用缓冲字符串初始化内容。此外,我可以观看我的";缓冲区";太满了,把它切开。
如果有人遇到同样的情况,这里有一个例子:
stream.on('data', (data) => {
...
this.buffer(data)
})
...
buffer(data) {
this.streamBuffer += data // Saving data/chunks
const bufferLength = this.streamBuffer.length
if (bufferLength > 10000) {
this.streamBuffer = this.streamBuffer.slice(bufferLength - 8000)
}
}