2016-02-09 5 views
2

Я разработал простой чат, используя socket.io в бродячей среде, и он работает правильно.Клиент Socket.io не подключается к серверу

Когда я пытаюсь запустить чат в рабочей среде, запускается сервер nodejs/socket.io, но клиент даже не запускает событие connect. Единственное, я изменил это, на стороне клиента:

var socket = io.connect('http://localhost:3000'); 

к:

var socket = io.connect('http://ip_address:3000'); 

Это код сервера:

var app = require('http').createServer(handler); 
var io = require('socket.io')(app); 
app.listen(3000, function() { 
    console.log('Server is running'); 
}); 
function handler(req, res) { 
    res.writeHead(200); 
    res.end(''); 
} 

io.on('connection', function(socket) { 
    socket.on('subscribe', function() { 
     console.log('subscribe request has arrived'); 
     console.log(socket.id); 
    }); 
}); 

ответ

1

Если он работал на местном уровне и остановились работающий после развертывания, это, вероятно, проблема с сетью - брандмауэр, заблокированный порт, принудительное выполнение Linux или что-то в этом роде.

Чтобы найти источник, перейдите на хост-сервер и попробуйте подключить порт

telnet 127.0.0.1 3000 

Вы получаете «Connection отказался» ошибка? если так, на каком сервере выполняется код? убедитесь, что служба брандмауэра отключена или с исключениями для порта 3000. на проверке linux enforcing.

Если соединение удается, проверьте соединение с локального ПК

telnet ip_address 3000 

Если это не удается, чем тестовый доступ к внешней службы (например portquiz.net) Таким образом, вы будете знать, если проблема связана с локальным компьютером или сети, или удалить сервер.

+1

Порт 3000 был заблокирован брандмауэром. Теперь он отлично работает. Большое вам спасибо! – zangarmarsh

Смежные вопросы