Socket.io.js - net :: ERR_ABORTED & 404 не найден - PullRequest
0 голосов
/ 26 апреля 2018

Я новичок в socket.io.В настоящее время я сталкиваюсь с проблемой, к которой socket.io.js не может получить доступ.

Мне удается получить доступ с локального компьютера, но когда кто-то подключается к моей локальной сети к моему компьютеру, он выдаст эту ошибку 'net::ERR_ABORTED & 404 Not Found'.

Я заметил, что проблема была localhost, когда кто-то другой доступ к вашему ПК скрипт localhost не будет работать на их стороне.Кроме того, я также протестировал с PHP '$_SERVER['SERVER_NAME']'

server.js

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

var port = 3005;

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

http.listen(port, function(){
  console.log('listening on *:%d',port);
});

client.js

<script src="http://localhost:3005/socket.io/socket.io.js"></script>
<script type="text/javascript">
     var socket = io.connect('http://localhost:3005');
     $(function(){
        socket.emit('refresh_list');
    });
</script>

Если потребуется исходный код, я будузагрузить мой код в github / bitbucket.

Версия: -

Узел v8.9.4

Socket.io 5.6.0

Экспресс 5.6.0

1 Ответ

0 голосов
/ 26 апреля 2018

Измените этот тег сценария с этого:

<script src="http://localhost:3005/socket.io/socket.io.js"></script>

на этот:

<script src="/socket.io/socket.io.js"></script>

Когда кто-то с другого компьютера в сети пытается загрузить эту веб-страницу, браузер пытаетсянайдите socket.io.js в http://localhot:3005, но когда браузер находится на другом ПК, localhost - это тот другой ПК, а не ваш сервер, и поэтому он не работает.

Удаление имени хоста изURL-адрес в теге <script> указывает браузеру использовать то же имя хоста, с которого была загружена веб-страница, и это то, что вам нужно.


Вам также необходимо изменить это:

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

на это:

var socket = io();

Идея в том, что вам нужно удалить все ссылки на localhost, если вы хотите, чтобы это работало с других компьютеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...