Skip to content

Instantly share code, notes, and snippets.

@TekuConcept
Created October 20, 2021 02:51
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TekuConcept/74e45f23662bf56a65acf039c911100b to your computer and use it in GitHub Desktop.
Save TekuConcept/74e45f23662bf56a65acf039c911100b to your computer and use it in GitHub Desktop.
REPL Over Sockets (NodeJS v17.0)
var net = require('net')
var socket = net.createConnection(5005)
socket.on('connect', () => {
process.stdin.resume()
process.stdin.on('data', d => {
socket.write(d)
})
})
socket.pipe(process.stdout)
socket.on('end', done)
socket.on('close', done)
function done () {
if (done.run) return
done.run = true
process.stdin.pause()
}
var repl = require('repl')
var net = require('net')
process.stdin.resume()
net.createServer(function (socket) {
var repls = repl.start({
prompt: "> ",
input: socket,
output: socket
})
// repls.context = bla
repls.on && repls.on('exit', () => {
console.error('repl exit event, closing socket')
socket.end()
})
socket.on('error', () => repls.close())
}).listen(5005)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment