48 lines
1.2 KiB
JavaScript
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");
|
|
});
|