web socket在https下利用nginx的转发

可以利用nginx的反向代理,直接去转发web socket,这里所监听的端口是不一样的;

先看html的内容:

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<title>我是来测试的</title>
</head>
<body>
<h1>我是来测试的11111111111</h1>
<script type="text/javascript">
	//连接服务
	// var wsServer = 'wss://api.99img.cn:9501';
	var wsServer = 'wss://149.28.16.XXX:9503';
	//实例化
	var websocket = new WebSocket(wsServer);

	//监听开启事件(只负责监听,没有实际的开启作用)
	websocket.onopen = function (evt) {
		websocket.send('我是来搞事的!!!');
	    // console.log("连接成功html");
	};
	//消息
	websocket.onmessage = function (evt) {
		//监听消息后,直接给服务器传递消息
	    console.log('evt: ' + evt);
	    console.log('来自server的最新消息: ' + evt.data);
	    if (evt.data != '') {
	    	alert('我他妈的:'+evt.data);
	    }
	};
	//关闭事件
	websocket.onclose = function (evt) {
		console.log("我关闭了html");
	};
	//报错
	websocket.onerror = function (evt, e) {
	    console.log('Error occured: ' + evt.data);
	};
</script>
</body>
</html>

我在这里访问的是'wss://149.28.16.XXX:9503',其中9503是访问的接口,而不是真正实现socket的接口,我用的是swoole,监听的端口是9501;

具体的代码实现我就不写了,有兴趣的盆友可以看我之前写过的文章,里面详细记录了swoole的实现,这里主要是介绍nginx的配置,以及转发;

server {
        listen       9503;
       # server_name  149.28.16.212;
        location / {
            proxy_pass http://149.28.16.XXX:9501;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }


        ssl on;
        ssl_certificate /www/server/nginx/ssl_key/jesonc.crt;
        ssl_certificate_key /www/server/nginx/ssl_key/jesonc.key;
}





猜你喜欢

转载自blog.csdn.net/feiwutudou/article/details/80462308