【问题标题】:Socket server is running but client can't connect套接字服务器正在运行但客户端无法连接
【发布时间】:2016-06-24 14:50:27
【问题描述】:

我已经使用 HTTPS 设置了一个带有 Socket.io 的 Node.js 服务器:

var express = require('express');
var app = express();

app.use(express.static(__dirname + '/public'));
var https = require('https');
var fs = require('fs');
var options = {
    key:    fs.readFileSync('commercial.key', 'utf8'),
    cert:   fs.readFileSync('commercial.crt', 'utf8'),
    ca:     fs.readFileSync('ca_chain.crt', 'utf8')
};
var server = https.createServer(options, app);
server.listen(3000);
var io = require('socket.io').listen(server);

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(client){
  //console.log('IO Connection');
  var socket_id = client.id;

  console.log(socket_id + " connected");
});

启动此服务器后,它运行良好。客户端可以连接到它。但是,几个小时后,新客户端无法连接,但旧客户端(之前连接的客户端)仍然可以与服务器交互。

我只有大约 200 个 ccu,我检查了 RAM、VPS 的 CPU,一切都很好。我还检查了日志文件,没有发现任何错误。

谁能告诉我服务器的设置是真的还是有什么问题?

【问题讨论】:

    标签: node.js socket.io


    【解决方案1】:

    你必须为 socket.io 定义一个单独的端口

     var socket_con = http.createServer(function(socket) {
    
        console.log("socket created=====");
        console.log(socket);
        }).listen(8000);
    

    //socket超时配置

       var mobileData ={  log: true , "close timeout": 120  , "heartbeat timeout": 120   , "heartbeat interval": 30  , "transports": ["websocket"],'disconnected':true};
    

    //套接字定义

      io.listen(socket_con, mobileData).on('connection', function(client){
      //console.log('IO Connection');
      var socket_id = client.id;
    
      console.log(socket_id + " connected");
    });
    

    【讨论】:

    • 所以我也需要 http 吗?你能解释一下为什么我需要为socket.io定义一个单独的端口吗?因为如果我设置错误,为什么服务器可以运行一段时间?无论如何,谢谢你。我会尝试您的解决方案并尽快反馈。
    【解决方案2】:

    经过几天的研究,我不知道为什么,但是当我像这样更改文件 /etc/security/limits 的配置时:

    * soft nofile 65535
    * hard nofile 65535
    root soft nofile 65535
    root hard nofile 65535
    

    我的服务器似乎运行良好。我发布给任何像我一样有问题的人,但如果有人有解释,请帮助我。

    【讨论】:

      猜你喜欢
      • 2013-12-05
      • 2014-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-25
      相关资源
      最近更新 更多