SocketIO ERR_CONNECTION_REFUSED
Я начинаю использовать NodeJS и Socket.IO. Я пытаюсь настроить базовый пример с HTTP-сервером NodeJS и установить соединение Socket.IO с сервером.
Я также использую angular JS, и в основном то, что я хочу, это то, что когда пользователь нажимает кнопку, устанавливается соединение с сервером. Однако, когда я пытаюсь, я получаю эту ошибку
GET http://localhost/socket.io/?EIO=2&transport=polling&t=1404288173776-3 net::ERR_CONNECTION_REFUSED
Вот мой код:
server.js
var http = require('http');
var server= http.createServer(handler);
var io = require('socket.io')(server);
server.listen(8080);
function handler(req, res) {
res.writeHead(200);
res.end('Hello Http');
}
io.on('connection', function (socket){
socket.emit('news', { hello: 'world' });
console.log('connected!');
});
app.js
var app = angular.module('testApp', ['ngRoute']);
app.controller('TestCtrl', function ($scope){
$scope.msg= "";
$scope.try = function (){
$scope.msg= "ALO"
var socket = io('http://localhost');
socket.on('news', function (data) {
console.log(data);
});
};
});
И в моем файле test.html:
<body ng-controller="TestCtrl">
<h2>{{msg}}</h2>
<button ng-click="try()">Try</button>
<script src="../js/angular.min.js"></script>
<script src="../js/angular-route.min.js"></script>
<script src="../js/app.js"></script>
<script src="../node_modules/socket.io/node_modules/socket.io-client/socket.io.js"></script>
<!-- <script src="/socket.io/socket.io.js"></script> -->
</body>
Я думаю, что ошибка может быть связана с тем, что я использую при включении socket.io.js. Я также попытался использовать непосредственно localhost: 8080 в пути, потому что я читал, что это может быть решение, но это не так Работа. Поэтому, пожалуйста, я ценю любую помощь. Спасибо!
Ответы
Ответ 1
Я столкнулся с такой же проблемой. Я не видел ERR_CONNECTION_REFUSED в [email protected]~0.9. Ошибка появилась после того, как я обновил socket.io до 1.3.
Я решил это, просто удалив URL-адрес из конструктора клиентской стороны:
Измените
var socket = io('http://localhost');
Для
var socket = io();
Как показано в уроке socket.io, http://socket.io/get-started/chat/
Ответ 2
Если ваш сервер прослушивает порт 8080, вам необходимо подключиться к этому порту.
var socket = io('http://localhost:8080');
И поскольку вы используете относительный путь, socket.io lib будет отлично обслуживаться.
<script src="/socket.io/socket.io.js"></script>
Ответ 3
Оказывается, что socket.io был установлен в смешной папке, и поэтому он не был распознан или загружен. Я решил это, создав package.json и объявив там зависимости, чтобы, когда я устанавливаю npm, он устанавливает папку в нужном месте.
Также Бен Фортун был прав, и я также изменил это... Надеюсь, это поможет другим людям, потому что я изо всех сил пытался понять это:)
Ответ 4
Я обращался к IP-интерфейсу своего облачного сервера, чтобы поболтать. внезапно Сервер был опущен. Затем я получил эту ошибку опроса. Наконец, я понял, что проблема связана с этим сервером. Убедитесь, что ваш сервер занят.
Я изменил IP-адрес на ноль. пожалуйста, укажите адрес вашего сервера
socket = io.connect('0.0.0.0:8110');