我们知道在微信小程序开发中若使用WSS协议(即websocket+SSL),需要绑定对应的域名,而对于接口也需要使用https绑定域名的情况,那么如何使用同一个域名下实现以上两种协议呢,接下来我们将在Linux下nginx web服务下做相应的配置。
第一步:查看您的nginx版本
可以使用如下命令查看您当前的nginx版本号,需要version>1.3
nginx -V
第二步:
首先需要您配置好https协议,保证https协议能够正常访问到您到网址。我们需要设置域名的nginx配置信息,在server{}内添加如下代码,若域名为a,则websocket下a/wss,则会将请求的信息转发至当前服务器的2000端口,则2000端口正是服务器端监听的websocket端口。
location /wss
{
proxy_pass http://127.0.0.1:2000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
}
第三部监测:
在谷歌浏览器下console下粘贴如下代码,会车则会显示配置成功。
ws = new WebSocket("wss://exam.58moban.cn/wss");
ws.onopen = function() {
console.log("连接成功");
ws.send('tom');
console.log("给服务端发送一个字符串:tom");
};
ws.onmessage = function(e) {
console.log("收到服务端的消息:" + e.data);
};
对于如何正确配置nginx下的https协议及服务器如何搭建websocket协议,可以从网上搜索一下,很多教程。