testXtermJS/server/server.js

48 lines
1.2 KiB
JavaScript

const express = require("express");
const http = require("http");
const { Server } = require("socket.io");
const net = require("net");
const cors = require("cors");
const app = express();
app.use(cors());
const server = http.createServer(app);
const io = new Server(server, {
cors: { origin: "*" }
});
io.on("connection", (socket) => {
console.log("Client connected:", socket.id);
const telnet = net.createConnection({ host: "172.18.8.20", port: 23 }, () => {
console.log("Connected to Telnet device");
});
telnet.on("data", (data) => {
socket.emit("cli_output_stream", data.toString());
});
telnet.on("close", () => {
console.log("Telnet connection closed");
socket.emit("cli_output_stream", "\r\n[Telnet disconnected]\r\n");
});
telnet.on("error", (err) => {
console.error("Telnet error:", err.message);
socket.emit("cli_output_stream", `[Error]: ${err.message}\r\n`);
});
socket.on("cli_input_stream", (data) => {
telnet.write(data); // gửi từng phím từ FE
});
socket.on("disconnect", () => {
console.log("Client disconnected:", socket.id);
telnet.end(); // Đóng kết nối Telnet
});
});
server.listen(3000, () => {
console.log("Server listening on port 3000");
});