我曾尝试在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启动它完全正常。它将在终端上显示日志消息
现在我想在web服务器(Cpanel)上托管myApplication,我在其中复制文件并从dist文件夹粘贴它,但是如何在服务器上启动server.js文件
这取决于您的Web服务器是仅提供静态文件(html,js等)还是实际运行linux实例来运行您的节点服务器。
根据我的经验,大多数免费(webhost00,cpanel)等,不提供Linux实例,而只提供托管静态文件的Web服务器。
如果您想运行节点服务器,那里有很多免费选项。主要是Azure
,AWS
,Heroku
,GCP (google cloud)
,Digital Ocean
。
在我看来,最快的免费是Heroku