我第一次学习使用Websockets,也第一次我使用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已经处于CLOSING或CLOSED状态。
说实话,我已经很累了。我不了解如何运行这些网站。
防火墙已创建(启用)条件TCP 127.0.0.1 port 1100
和
TCP 31.31.202.221 port 1100
如何解决此问题?我在做什么错了?
P.S。另外,我使用的是域而不是IP。无论如何,同样的错误。