gpt4 book ai didi

javascript - 在 term.js 中启用颜色

转载 作者:行者123 更新时间:2023-11-30 08:41:19 38 4
gpt4 key购买 nike

我正在使用 term.js用于通过 JavaScript 和 Node.js 在 Web 浏览器中模拟终端。

我已经设置了基本实现,我可以连接到本地和远程主机(我使用节点 ssh2 连接到远程主机)。一切都按预期工作,除了它是黑白的(黑色背景,白色文本)。

根据存储库中的示例,我在客户端中有以下代码。我应该添加一些额外的配置来启用颜色吗?

var term = new Terminal({
colors: Terminal.colors, // This alone doesnt seem to work
cols: 80,
rows: 24,
useStyle: true,
screenKeys: true,
cursorBlink: true
});

最佳答案

颜色适合我。这是我在 Ubuntu 上的测试设置:

先安装依赖:npm install express socket.io ssh2 term.js

在远程服务器上安装 colortest 包(您正在通过 ssh 进入):sudo apt-get install colortest -y

server.js:

var express = require('express');
var app = express();
var server = require('http').Server(app);
var io = require('socket.io')(server);

var term = require('term.js');
var ssh = require('ssh2');

server.listen(8000);

app.use(express.static(__dirname + '/public'));
app.use(term.middleware());

io.on('connection', function (socket) {
var conn = new ssh();
conn.on('ready', function() {
socket.emit('data', '\n*** SSH CONNECTION ESTABLISHED ***\n');
conn.exec('env TERM=xterm-256color colortest-256', function(err, stream) {
if (err)
return socket.emit('data', '\n*** SSH EXEC ERROR: ' + err.message + ' ***\n');
stream.on('data', function(d) {
socket.emit('data', d.toString('binary'));
}).on('close', function() {
conn.end();
});
});
}).on('close', function() {
socket.emit('data', '\n*** SSH CONNECTION CLOSED ***\n');
}).connect({
host: '192.168.100.105',
port: 22,
username: 'foo',
password: 'barbaz',
});
});

public/client.htm:

<html>
<head>
<title>WebTerm</title>
<script src="/socket.io/socket.io.js"></script>
<script src="/term.js"></script>
<script>
window.addEventListener('load', function() {
var socket = io.connect();
socket.on('connect', function() {
var term = new Terminal({
cols: 250,
rows: 100,
convertEol: true,
useStyle: true,
cursorBlink: true,
screenKeys: true
});

term.on('data', function(data) {
socket.emit('data', data);
});

term.on('title', function(title) {
document.title = title;
});

term.open(document.body);

socket.on('data', function(data) {
term.write(data);
});

socket.on('disconnect', function() {
term.destroy();
});
});
}, false);
</script>
</head>
<body>
</body>
</html>

执行node server.js,然后在浏览器中访问http://localhost:8000/client.htm。您应该会看到类似 this 的内容.

关于javascript - 在 term.js 中启用颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26115837/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com