2013-07-29 3 views
2

Я новичок в node.js и получил работу на локальном хосте.Как заставить node.js работать на моем сервере?

Для localhost Я использую xampp, а затем файл .bat, который запускает узел app.js (запускает сервер).

Он отлично работает и запускает игру, как показано ниже, с обоими символами, появляющимися на каждом экране, и положениями, передаваемыми по серверу.

proof it works

Тогда, когда я пытаюсь запустить его на сервере после использования SSH для запуска «узел app.js» выводит info - socket.io started , как это делает, когда я запускаю его на локальном хосте, но потом, когда я запустить приложение я получаю следующие ошибки (у меня были эти ошибки ранее при попытке получить его работу на локальном хосте - они появляются, когда сервер не работает должным образом ..):

enter image description here

Любая помощь будет будь велика, спасибо!

на стороне клиента, у меня есть этот код в HTML файле: <script src="http://localhost:8080/socket.io/socket.io.js"></script> и var socket = io.connect('http://localhost:8080');

, который затем используется для выполнения всех функций. например

socket.on('message', function (data) { 
    var player = ig.game.getEntitiesByType(EntityPlayer)[0]; 
    if(player) 
    { 
     player.messagebox = player.messagebox + '\n' + data + ' disconnected'; 
    } 
}); ` 

на стороне сервера У меня есть код: var app = require('http').createServer(handler), io = require('socket.io').listen(app), fs = require('fs') app.listen(8080);

+0

Я всегда запускаю узловые программы, используя '$ node app.js'. Можете ли вы ssh на свой сервер, перейти к файлам и запустить файл? – twinlakes

+0

сделал это, кажется, работает нормально, поскольку он выводит 'info - socket.io start'. Я думаю, что это что-то связано с socket.io – smj2393

+0

, вы открываете сокет с локальным хостом, когда он должен быть с вашим удаленным сервером ? – twinlakes

ответ

2

Изменение var socket = client.connect('http://stuartjones.me:8080'); к var socket = io.connect('http://stuartjones.me:8080');.

Использование http://localhost как соединение не будет работать. Вы должны использовать свой IP-адрес или домен вашего сервера.

1

Вы должны подключиться к серверу, а не к локальной машине. Попробуйте это var socket = io.connect('http://255.255.255.255:8080');, где вы заменяете 255.255.255.255 на IP-адрес вашего сервера. Изменение адреса вашего сценария тоже: <script src="http://255.255.255.255:8080/socket.io/socket.io.js"></script>

Вы уверены, что ваш сервер Node.js слушает 8080 порта, что этот порт открыт (не блокируется брандмауэром), и что модуль socket.io является установлен (через npm) на вашем сервере?

Вы можете увидеть эти сообщения для получения дополнительной информации:

Socket.IO - require is not defined

socket.io - ReferenceError: io is not defined

+0

Cheers работает сейчас! – smj2393

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