如何在没有npm start的情况下在Cpanel上启动套接字服务器(server.js)

问题描述 投票:1回答:1

我曾尝试在Angular-6应用程序中使用socket.io和socket.io-client。

为此我在根目录中创建了一个server.js文件。 server.js文件如下:

const express = require('express');
const path = require('path');
const http = require('http');
const socketIO = require('socket.io');

const app = express();
const port = process.env.PORT || 3000;

app.use(express.static(path.join(__dirname, 'dist/myApp')));

app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'dist/myApp/index.html'));
});

const server = http.createServer(app);

const io = socketIO(server);

io.on('connection', (socket) => {
console.log('New user connected');

socket.on('disconnect', () => {
    console.log('User disconnected');
});
});


server.listen(port, () => {
console.log(`Server running on port ${port}`);
});

在我的package.json文件中,我还将“start”:“ng serve”更改为“node server.js”

"scripts": {
    "start": "node server.js"       
  }

现在,在我的本地机器上,我尝试命令构建,然后npm启动它完全正常。它将在终端enter image description here上显示日志消息

现在我想在web服务器(Cpanel)上托管myApplication,我在其中复制文件并从dist文件夹粘贴它,但是如何在服务器上启动server.js文件

node.js express socket.io angular6 cpanel
1个回答
1
投票

这取决于您的Web服务器是仅提供静态文件(html,js等)还是实际运行linux实例来运行您的节点服务器。

根据我的经验,大多数免费(webhost00,cpanel)等,不提供Linux实例,而只提供托管静态文件的Web服务器。

如果您想运行节点服务器,那里有很多免费选项。主要是AzureAWSHerokuGCP (google cloud)Digital Ocean

在我看来,最快的免费是Heroku

© www.soinside.com 2019 - 2024. All rights reserved.