Розетка.отключение ввода-вывода

У меня есть чат в nodejs, Express, socket.io и угловой. Он работает хорошо, но отключается иногда и в случайное время. Обычно подключение длится не более 2 минут. Я получаю несколько net:: ERR_CONNECTION_TIMED_OUT на консоли.

ПС.: Я использую apache 2.2 на CentOS с сертифицированным ssl.
Есть советы?

Мой сервер.заголовок js ниже

#!/bin/env node

var express = require('express'),
path = require('path'),
app = express(),
logger = require('morgan'),
_m = require("./models/Message"),
Message = _m.m,
NewMessage = _m.n,
Group = _m.g,
Online = _m.o,
DeletedMessage = _m.d,
LastMessage = _m.l,
_mTASK = require("./models/Task"),
_Task = _mTASK.t,
TaskComment = _mTASK.c,
TaskLog = _mTASK.l,
TaskModel = _mTASK.m,
TaskNotification = _mTASK.n,
_d = require("./lib/Connection");

app.use(logger('dev'));
app.set('port', 3000);
app.set('ipaddr', "127.0.0.1");

var server = require('http').createServer(app);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
    var err = new Error('Not Found');
    err.status = 404;
    next(err);
});

if (app.get('env') === 'development') {
    app.use(function(err, req, res, next) {
        res.status(err.status || 500);
        res.render('error', {
            message: err.message,
            error: err
        });
    });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
        message: err.message,
        error: {}
    });
});

server.listen(app.get('port'), app.get('ipaddr'), function() {
    console.log('Express server listening on  IP: ' + app.get('ipaddr') + ' and port ' + app.get('port'));
});


var io = require("socket.io")(server);

io.set("origins", 'https://meusite.me:*');
io.set('transports', ['polling', 'websocket']);

1 ответ

  1. Немного розетки.IO фон

    Сервер отправляет сердцебиение клиенту каждые X секунд, где X ==
    heartbeat intervalзначение конфигурации.

    Если клиент не отвечает, сокет считает соединение мертвым

    Клиент ожидает пульса от сервера каждые N секунд, где N == значение heartbeat timeoutконфигурации.

    Оба эти значения устанавливаются на сервере и heartbeat timeoutотправляются клиенту при открытии отдельного соединения.

    Учитывая файл выше, вы можете установить heartbeat timeoutчто-то вроде …

    //WARNING io.set() has been depricated
    
    var io = require("socket.io")(server);
    
    io.set('heartbeat interval', '30000');
    io.set('heartbeat timeout', '45000');
    io.set("origins", 'https://meusite.me:*');
    io.set('transports', ['polling', 'websocket']);
    
    //Setting your server configuration is now done via ..
    
    var socket = require('socket.io')({
      // options go here
      'configOption': 'configValue';
    });