我尝试在 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”:“ngserve”更改为“node server.js”
"scripts": {
"start": "node server.js"
}
现在,在我的本地计算机上,我尝试了命令 ng build ,然后 npm start ,它工作得很好。它将在终端 上显示日志消息
现在我想在 Web 服务器(Cpanel)上托管 myApplication,在其中复制文件并从 dist 文件夹粘贴它,但如何在我的服务器上启动 server.js 文件
最佳答案
这取决于您的 Web 服务器是否只是提供静态文件(html、js 等)或实际运行 Linux 实例来运行您的 Node 服务器。
根据我的经验,大多数免费的(webhost00、cpanel)等不提供 Linux 实例,而只提供托管静态文件的 Web 服务器。
如果您想运行 Node 服务器,有很多免费选项。主要是Azure
、AWS
、Heroku
、GCP(谷歌云)
、Digital Ocean
。
我认为最快的免费是 Heroku
关于node.js - 如何在不使用 npm start 的情况下在 Cpanel 上启动套接字服务器 (server.js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54841089/