Событие onopen webtocket Ratchet не запускается, но на сервере работает тот же код - PullRequest
0 голосов
/ 03 сентября 2018

Тот же код работает на сервере, но не на локальном. Хотя addEventListener добавляет событие открытия, но событие onopen не вызывается. И мой локальный и живой сервер - nginx. Как локальная, так и живая версия php - php7-fpm. Единственная разница в том, что мой сервер настроен для https, а мой локальный - http.

мой код JavaScript:

'use strict';
var servers = {
    iceServers: [
        {urls: 'stun:stun.l.google.com:19302'}
    ]
};

var myPC;
var awaitingResponse;
var streamConstraints;
var myMediaStream;

const room = getRoom();
//const wsChat = new WebSocket("wss://localhost/websocket"); //this is for server which is HTTPS
const wsChat = new WebSocket("ws://localhost:8090");//localhost which is HTTP

wsChat.addEventListener('open', function (event) {
    console.log('open event listener');//getting this on console
});

wsChat.addEventListener('message', function (event) {
    console.log('Message event listener');
});

window.addEventListener('load', function(){    
    console.log(wsChat);
    
    wsChat.onopen = function(event){
        alert('connected'); //not getting this alert
        wsChat.send(JSON.stringify({
            action: 'subscribe',
            room: room
        }));
        showSnackBar("Connected to the chat server!", 5000);
    };
    wsChat.onerror = function(event){
        showSnackBar("Unable to connect to the chat server! Kindly refresh", 10000);
    };    
    wsChat.onmessage = function(e){
        var data = JSON.parse(e.data);
        console.log(data);
        
        if(data.room === room){
            switch(data.action){
                .....
            }  
        }
    };
});

Конфигурация nginx моего сервера и моего локального.

Сервер: mysite.conf

map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}
upstream websocket {
    server 127.0.0.1:8090;
}
......
location = /websocket{
    proxy_redirect off;

    proxy_pass http://websocket;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 3600;
  }

Эта конфигурация работает на моем сайте в реальном времени.

Local nginx conf:

map $http_upgrade $connection_upgrade {
    default upgrade;
    '' close;
}
upstream websocket {
    server 127.0.0.1:8090;
}
......
location = /websocket {
    proxy_redirect off;

    proxy_pass http://websocket;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_read_timeout 3600;
}

Ответ, который я получаю на своей консоли для локальной системы.

enter image description here

Понятия не имею.

...