Почему socket.io не работает (я не могу подключиться или страница все еще ждет вечно) с двумя разными браузерами на одном компьютере - PullRequest
0 голосов
/ 05 марта 2019

Мой простой код для теста: index.html

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

<script>
 socket = io('http://localhost:2020'/*,{secure: true}*/);
</script>

Примечание. Я удалил защищенное значение true.

app.js Nodejs

var express = require('express'),
    app = express(),
    server = require('http').createServer(app),
    io = require('socket.io').listen(server),
    path = require("path");

app.use(express.static(__dirname + '/public'));
app.set('view engine', 'ejs');
app.set('views', path.join(__dirname, 'views'));

server.listen(2020);
 console.log("localhost:2020");

io.on('connection', function(socket) {
    console.log("in");
    socket.on('disconnect',function(data){
        console.log("out");
    });
});

когда я тестирую простое соединение на своем сокет-сервере с помощью nodejs, если я открываю новую страницу (новое соединение) в другом браузере, например в chrome и другом экземпляре в опере, второй экземпляр не работает или не имеет блока, не открывайте страницу и не вызывайте сервер socket.io, но когда я открываю новую вкладку в Chrome, новые вкладки с новым подключением работают нормально ...

примечание: страница клиента не размещена на сервере socket.io, поскольку страница клиента размещена на сервере apache.

P1 - я открываю index.html в Chome = Страница работает нормально и сокет подключается правильно

P2 - я открываю index.html в новой вкладке Chrome = Страница работает так же нормально и соединяется.

P3 - я открываю index.html в инкогнито хроме или открываю в Opera (другой браузер) = Сокет не подключен и страница заблокирована

P4-я делаю (обновляю) сокет, который я открыл в Chrome (P2), то есть я обновляю новую вкладку Chrome. Сервер сокетов по-прежнему заблокирован и даже не подключается.

P5 - я обновляю страницу (P1): = все разблокировано и все страницы, которые находятся на домашней странице и заблокированы, теперь подключаются к сокету нормально

происходит, если index.html размещен за пределами NodeJS, но если, например, я создаю index.html, размещенный, например, в представлении Nodejs, он не проходит, проблема заключается в том, что мое приложение рассматривается как загружаемый виджет внешний по отношению к nodejs.

1 Ответ

0 голосов
/ 05 марта 2019
Опция

безопасна для соединений https, и вы пытаетесь подключиться к http. Попробуйте удалить безопасный вариант.

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