Сбой соединения WebSocket с 'ws: // localhost: 8080 /': Ошибка при установлении соединения: net :: ERR_CONNECTION_REFUSED - PullRequest
0 голосов
/ 19 ноября 2018

У меня нет соединения Websocket между клиентским скриптом и сервером.

Он отлично работает в моей местной среде.

Также я перехожу по этой ссылке .

Вот серверный скрипт, который инициализирует сервер websocket и прослушивает клиентское соединение с 8080 портом.

public function run()
{
    $loop   = Factory::create();
    $pusher = new Pusher;
    $context = new Context($loop);
    $pull = $context->getSocket(ZMQ::SOCKET_PULL);
    $pull->bind('tcp://127.0.0.1:5555'); // Binding to 127.0.0.1 means the only client that can connect is itself
    $pull->on('message', array($pusher, 'onBlogEntry'));

    // Set up our WebSocket server for clients wanting real-time updates
    $webSock = new Server('0.0.0.0:8080', $loop); // Binding to 0.0.0.0 means remotes can connect
    $webServer = new IoServer(
        new HttpServer(
            new WsServer(
                new WampServer(
                    $pusher
                )
            )
        ),
        $webSock
    );

    $loop->run();

А вот клиентский скрипт:

var conn = new ab.Session('ws://localhost:8080',
    function() {
        /* subscribe to following topics */
        conn.subscribe('new_order', function(topic, data) ..

Опять же, это работает нормально в локальной настройке.

Также следует отметить, что мое приложение размещается с использованием указанного порта из контейнера Docker.

http://192.168.12.52:8094/xyz/new/....

Я также попытался указать IP в клиентском скрипте:

var conn = new ab.Session('ws://192.168.12.52:8080',
    function() {
        /* subscribe to following topics */
        conn.subscribe('new_order', function(topic, data) ...

В этом случае я получаю следующую ошибку:

WebSocket connection to 'ws://192.168.11.32:8080/' failed: Error during WebSocket handshake: Unexpected response code: 403

Чего здесь не хватает?

1 Ответ

0 голосов
/ 19 ноября 2018

Вероятно, это проблема с сертификатом ssl.Я думаю, что новые версии браузеров имеют проблемы с веб-сокетами без ssl.у вас может быть самозаверяющий сертификат.попробуйте https://192.168.12.52:8080, и если вы увидели ошибку недействительного сертификата (что-то вроде: ваше соединение не защищено или ваше соединение не является частным), нажмите кнопку «Добавить» или добавьте исключение, затем повторите попытку с тем же браузером.также вы можете использовать wss: // вместо ws: //.

...