node.jsサーバーからのデフォルトのコンソール出力をユーザークライアントに表示できますか?
私はいくつかのプラグインを試しました。 'console.re'しかし、私のために働いた人はいません。ノードJS読み取りディスプレイユーザーのデバイス上のコンソール出力
私はリアルタイムで 'console.log'の出力を読んで、すべての出力をクライアント(モバイルデバイス)に表示するのが好きです。
おかげ
node.jsサーバーからのデフォルトのコンソール出力をユーザークライアントに表示できますか?
私はいくつかのプラグインを試しました。 'console.re'しかし、私のために働いた人はいません。ノードJS読み取りディスプレイユーザーのデバイス上のコンソール出力
私はリアルタイムで 'console.log'の出力を読んで、すべての出力をクライアント(モバイルデバイス)に表示するのが好きです。
おかげ
にconsole.logはstdout
に書き込み、あなたはそれに耳を傾け、データを何でも行うことができます。改行でstdoutに
はconsole.log([データ] [引数])
プリント。
https://nodejs.org/api/console.html
このコードを進めてみてください。
const spawn = require('child_process').spawn
const ls = spawn('ls', ['-lh', '/usr'])
const collectedData = []
ls.stdout.on('data', (data) => {
console.log('stdout: ' + data.toString())
collectedData.push({ event: 'CONSOLE_LOG', data })
// now just make the client consume collectedData in real-time
// or on refresh
})
ls.stderr.on('data', (data) => {
console.log('stderr: ' + data.toString())
})
ls.on('exit', (code) => {
console.log('child process exited with code ' + code.toString())
})
子プロセスを内蔵しています、ここでこれらのドキュメントを介して試料を取る:。
を私はについては何も知りませんあなたのセットアップが、Expressで簡単にしたい場合
app.get('/logging', (req, res) => {
res.send(collectedData)
})
クライアントが2000ミリ秒ごとにヒットするようにします。
それ以外の場合は、サーバーでソケットを作成し、クライアントに更新をプッシュしてクライアントで処理する必要があります。 node.js.で
することはできセットアップTCPとUDPソケットはかなり速いもいくつかのグーグルをしてください。
私はあなたを与えることができるいくつかのサンプルコードを持っている:
/**
* SERVER
*/
// Load dgram module
const dgram = require('dgram')
// Create new socket
const server = dgram.createSocket('udp4')
// Listening event
server.on('listening',() => console.log('UDP Server listening'))
// Message event
server.on('message', (msg, rinfo) => {
console.log(`${rinfo.address}:${rinfo.port} - ${msg}`)
});
// Start UDP socket listener
const PORT = 3333
const HOST = '127.0.0.1'
server.bind(PORT, HOST)
/**
* CLIENT
*/
const client = dgram.createSocket('udp4')
const ip = require('ip')
client.send('Sample message', PORT, HOST, (err) => {
if (err) throw err
console.log(`UDP message sent: ${ip.address()}`)
client.close()
})