如何在服务器(Centos 7)上运行NodeJs SocketIO

问题描述 投票:0回答:2

我使用nodejs套接字io创建应用。它可以在本地主机(端口:3000)上正常工作。但是,当我将其部署到服务器时,我可以在3000端口上运行我的应用程序,但客户端会抛出超时。我该如何解决?

var fs = require('fs');

var https = require('https');
var options = {
  key: fs.readFileSync('ssl.my-key.key'),
  cert: fs.readFileSync('ssl.my-cert.crt')
};
var server = https.createServer(options);
var io  = require('socket.io').listen(server);
var port = 3000;

const database = require('./Database');

io.on('connection', (socket) => {

  socket.on('message', async (msg) => {
    // I do some action here.
  });

  socket.on('disconnect', (msg) => {
    // some action in here too
  });

});

server.listen(port, () => {
  console.log('listening on *:' + port);
});
node.js socket.io centos centos7
2个回答
0
投票

似乎您的问题与端口转发有关。为了公开访问您的服务器,它需要正确转发所有端口。在本地和路由器上。

检查此链接以了解有关如何在Linux上进行端口转发的更多信息:https://linuxacademy.com/guide/11630-internal-port-forwarding-on-linux-using-the-firewall/

这是有关路由器端口转发的更多信息,但这实际上取决于您的路由器。

https://www.noip.com/support/knowledgebase/general-port-forwarding-guide/

但是,我建议您不要在自己的计算机上托管主机。一世建议您使用Heroku,您可以选择使用其免费服务器,无需支付费用。

有关heroku和NodeJS的更多信息:https://linuxacademy.com/guide/11630-internal-port-forwarding-on-linux-using-the-firewall/


0
投票

让我们调试您的node js应用。1)在数据库连接http.createserver上添加一些日志,还必须在其中检查是否成功,然后捕获异常]]

2)在启动节点js应用之前,您必须在centOs上打开端口]

3)您应该使用域名或IP地址对您进行测试

根据您的评论,您获得了连接超时,这意味着节点js服务器试图与端口3000连接,但是节点无法连接,并且连接超时引发错误

还发送您的主索引文件的示例代码,以便我们调查您的问题谢谢。

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