Buradaki diğer tüm çözümler işletim sistemine bağlıdır. Herhangi bir işletim sistemi için bağımsız bir çözüm, aşağıdaki gibi socket.io'yu kullanır.
package.json
iki komut dosyasına sahiptir:
"scripts": {
"start": "node server.js",
"stop": "node server.stop.js"
}
server.js - Her zamanki ekspres dosyalarınız burada yaşıyor
const express = require('express');
const app = express();
const server = http.createServer(app);
server.listen(80, () => {
console.log('HTTP server listening on port 80');
});
// Now for the socket.io stuff - NOTE THIS IS A RESTFUL HTTP SERVER
// We are only using socket.io here to respond to the npmStop signal
// To support IPC (Inter Process Communication) AKA RPC (Remote P.C.)
const io = require('socket.io')(server);
io.on('connection', (socketServer) => {
socketServer.on('npmStop', () => {
process.exit(0);
});
});
server.stop.js
const io = require('socket.io-client');
const socketClient = io.connect('http://localhost'); // Specify port if your express server is not using default port 80
socketClient.on('connect', () => {
socketClient.emit('npmStop');
setTimeout(() => {
process.exit(0);
}, 1000);
});
Test edin
npm start
(sunucunuzu her zamanki gibi başlatmak için)
npm stop
(bu şimdi çalışan sunucunuzu durduracaktır)
Yukarıdaki kod test edilmemiştir (kodumun kısaltılmış bir sürümüdür, kodum çalışır) ama umarım olduğu gibi çalışır. Her iki durumda da, sunucunuzu durdurmak için socket.io'yu kullanmak istiyorsanız, izlenecek genel yönü sağlar.