如何确定TCP服务器将始终在VM(Google云)上运行

时间:2020-10-09 16:02:47

标签: javascript node.js google-cloud-platform tcp virtual-machine

我正在使用运行Windows Server 2019的Google Cloud Platform中的VM。我目前有一个简单的TCP服务器(node.js),它可以接收数据,然后使用Axios将其发布到我的firestore数据库中。对我而言,重要的是服务器不会崩溃,并且在发生崩溃的情况下,它可以重新启动并“保持活动”。我该怎么做?

VM和TCP服务器的新功能。刚刚做了一个简单的

TCP

const net = require('net');
const axios = require('axios')
const chalk = require('chalk');

const server = net.createServer(conn => {

    console.log(chalk.green('new client'));

      conn.on('data', data => {
        // let add = conn.address()
      
        console.log(data)
    
        if(data.length > 0){

            axios.post('https://abc', {
            data: data
          })
          .then(response => {
    
        conn.write('ACK');

          }).catch(err =>{
        conn.write('ERR', err)
                console.log(err)
          })
        }
    });

    conn.on('end', () => {
        console.log(chalk.red('client left '));
    console.log(chalk.white.bold('----------------------------------'));
    });
});

server.listen(8080);

1 个答案:

答案 0 :(得分:1)

在Windows Server上运行node.js应用程序面临一些挑战。

  1. 安装和设置监视应用程序,以检测到node.js应用程序已失败并重新启动该应用程序。提供此功能的示例产品是node-windows

https://www.npmjs.com/package/node-windows

这只是示例,并非对任何特定产品的推荐。

  1. 必须安装监视应用程序并将其设置为Windows服务,以便监视应用程序自动重新启动。应用程序node-windows也提供了此功能。

  2. 在用户环境之外安装应用程序文件。这意味着创建具有正确所有权和权限的目录,以便Windows服务可以访问文件。

Charan Tej撰写的这篇文章可能有助于了解细节:

Node Windows Service for Running Node.js Application