Первый раз, когда я учусь использовать веб-сокеты, а также первый раз, когда я использую VPS-сервер.Была проблема.Уже второй день не могу настроить.
Мои настройки nginx.conf:
http:
http {
keepalive_timeout 604800;
proxy_connect_timeout 604800;
proxy_send_timeout 604800;
proxy_read_timeout 604800;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream websocket {
server 31.31.202.221:1100;
}
сервер:
server {
location /ws {
proxy_pass http://ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
ТестКлиентский сценарий:
<!DOCTYPE html>
<html>
<head>
<title>ffghghhhh</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div>546546546564</div>
<script>
var socket = new WebSocket("wss://31.31.202.221/ws");
socket.onopen = function() {
console.log("Connected.");
};
socket.onclose = function(event) {
if (event.wasClean) {
console.log('Closed');
} else {
console.log('BOOOOOMMM'); // killed process
}
alert('Code: ' + event.code + ' reason: ' + event.reason);
};
socket.onmessage = function(event) {
console.log("Data: " + event.data);
};
socket.onerror = function(error) {
console.log("Error" + error.message);
};
var timerId = setInterval(function() {
socket.send("Tick!");
}, 2000);
</script>
</body>
</html>
При запуске сценария выдается ошибка 1006.
Ошибка консоли: (индекс): 11 Соединение WebSocket с 'wss: //31.31.202.221/ws'Сбой: Ошибка во время рукопожатия WebSocket: Неожиданный код ответа: 404 (анонимный) @ (индекс): 11 3 (индекс): 33 WebSocket уже находится в состоянии ЗАКРЫТО или ЗАКРЫТО.
Я уже усталЕсли честно.Я не понимаю, как запустить эти веб-сайты.Брандмауэр создал (включил) условие TCP 127.0.0.1 port 1100
и TCP 31.31.202.221 port 1100
Как это исправить?Что я делаю не так?
PS Также вместо IP я использовал домен.Во всяком случае, та же ошибка.