摘要:需求對(duì)話提問(wèn)我在本地能夠使用協(xié)議去鏈接,但是小程序不能使用?;卮鹩捎谛〕绦蚴褂玫氖羌用軈f(xié)議,所以需要使用。這里與的關(guān)系就相當(dāng)于于的關(guān)系。例如至此代理就算全部。
需求對(duì)話 提問(wèn)
我在本地web能夠使用ws協(xié)議去鏈接websocket,但是小程序不能使用。
回答由于小程序使用的是SSL加密協(xié)議,所以需要使用wss。這里wss與ws的關(guān)系就相當(dāng)于https于http的關(guān)系。
提問(wèn)我用的是寶塔Linux,SSL好申請(qǐng),但是wss我就不會(huì)配置了。
回答對(duì)的寶塔Linux申請(qǐng)SSL很簡(jiǎn)單,一鍵申請(qǐng),相對(duì)https實(shí)現(xiàn)就很簡(jiǎn)單了。那我們開(kāi)始做配置吧。但前提你需要保證以下的幾個(gè)必備條件。
前提必備:
需要先為你的websocket域名申請(qǐng)SSL
寶塔Linux(非寶塔其實(shí)一樣能用,但是我這里的教程主要針對(duì)寶塔Linux做的)
Nginx代理WSS這一步主要用來(lái)實(shí)現(xiàn)wss轉(zhuǎn)ws(即轉(zhuǎn)到http)
打開(kāi)管理后臺(tái),點(diǎn)開(kāi)“網(wǎng)站”->“相應(yīng)的域名”->“配置文件”(我糊的地方只是我的域名和ip信息,不是重要信息,不用在意)
搜索#SSL-END,在這串注釋后面加上以下代碼,圖上我已經(jīng)加上了,所以和你的肯定不一樣
#wss協(xié)議轉(zhuǎn)發(fā) 小程序里面要訪問(wèn)的鏈接 # 訪問(wèn):wss://xxxx.com/wss location /wss { proxy_pass http://host:8080;#代理到上面的地址去, proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }
關(guān)于以上的配置我必須要說(shuō)清楚,proxy_pass http://host:8080后面的地址加端口是你websocket的地址,這里必須加上端口,例如:http://baidu.com:8080,這里需要手動(dòng)改的就是這一個(gè)地方。
先別關(guān)閉這個(gè)窗口,接下來(lái)還有接下來(lái)把鼠標(biāo)移到最頂端,也就是server上面添加以下代碼,一樣的道理,我這里已經(jīng)添加了,所以和你的不一樣,以你的為準(zhǔn)
map $http_upgrade $connection_upgrade { default upgrade; "" close; } upstream websocket { server ip:8080; #這里可以是多個(gè)服務(wù)端IP(分多行),設(shè)置權(quán)重就可以實(shí)現(xiàn)負(fù)載均衡了 }
這里需要手動(dòng)設(shè)置一下,就是在upstream websocket里面有一個(gè)ip:8080。這個(gè)ip請(qǐng)?zhí)鎿Q成你的IP,IP在什么地方可以看到呢,看你寶塔linux左上角就有了,對(duì)就是那個(gè)。例如:server 114.114.114.114:8080
至此Nginx代理wss就算全部ok。請(qǐng)注意我用的socket端口是8080,如果你的端口被占用,請(qǐng)你更改,當(dāng)然如果改了請(qǐng)把一系列的都改了
小程序websocket使用官方文檔:https://developers.weixin.qq....
我這里只是做連接測(cè)試。只是一個(gè)Demo
miniWebsocket:function(){ wx.connectSocket({ url: "wss://host/wss", //這里只需要填寫(xiě)你開(kāi)始配置的域名就好,但是請(qǐng)?jiān)谟蛎竺嫣砑右粋€(gè)/wss。例如:wss://baidu.com/wss }) wx.onSocketOpen(function(res){ console.log(res) console.log("打開(kāi)成功") }) wx.onSocketMessage(function(res){ console.log("收到服務(wù)器信息"+JSON.stringify(res)) }) wx.onSocketOpen(function (res) { console.log("WebSocket連接已打開(kāi)!") console.log("數(shù)據(jù)發(fā)送") wx.sendSocketMessage({ data: "ekeylee" }) }) }
上圖就是我已經(jīng)配置好小程序的返回信息,如果有什么地方寫(xiě)的不是很清楚,請(qǐng)文末留言,感謝
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29481.html
摘要:需求對(duì)話提問(wèn)我在本地能夠使用協(xié)議去鏈接,但是小程序不能使用?;卮鹩捎谛〕绦蚴褂玫氖羌用軈f(xié)議,所以需要使用。這里與的關(guān)系就相當(dāng)于于的關(guān)系。例如至此代理就算全部。 需求對(duì)話 提問(wèn) 我在本地web能夠使用ws協(xié)議去鏈接websocket,但是小程序不能使用。 回答 由于小程序使用的是SSL加密協(xié)議,所以需要使用wss。這里wss與ws的關(guān)系就相當(dāng)于https于http的關(guān)系。 提問(wèn) 我用的是...
摘要:二跨域解決方案原理利用標(biāo)簽沒(méi)有跨域限制的漏洞,網(wǎng)頁(yè)可以得到從其他來(lái)源動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)。使用反向代理實(shí)現(xiàn)跨域,是最簡(jiǎn)單的跨域方式。 前言 前后端數(shù)據(jù)交互經(jīng)常會(huì)碰到請(qǐng)求跨域,什么是跨域,以及有哪幾種跨域方式,這是本文要探討的內(nèi)容。 本文完整的源代碼請(qǐng)猛戳github博客,紙上得來(lái)終覺(jué)淺,建議動(dòng)手敲敲代碼 一、什么是跨域? 1.什么是同源策略及其限制內(nèi)容? 同源策略是一種約定,它是瀏覽器最核心...
摘要:二跨域解決方案原理利用標(biāo)簽沒(méi)有跨域限制的漏洞,網(wǎng)頁(yè)可以得到從其他來(lái)源動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)。使用反向代理實(shí)現(xiàn)跨域,是最簡(jiǎn)單的跨域方式。 前言 前后端數(shù)據(jù)交互經(jīng)常會(huì)碰到請(qǐng)求跨域,什么是跨域,以及有哪幾種跨域方式,這是本文要探討的內(nèi)容。 本文完整的源代碼請(qǐng)猛戳github博客,紙上得來(lái)終覺(jué)淺,建議動(dòng)手敲敲代碼 一、什么是跨域? 1.什么是同源策略及其限制內(nèi)容? 同源策略是一種約定,它是瀏覽器最核心...
摘要:什么是跨域當(dāng)協(xié)議域名端口號(hào),有一個(gè)或多個(gè)不同時(shí),有希望可以訪問(wèn)并獲取數(shù)據(jù)的現(xiàn)象稱為跨域訪問(wèn),同源策略限制下都是不支持跨域的。命名是隨意的,只要是符合一級(jí)域名與二級(jí)域名的關(guān)系即可,然后訪問(wèn)。 showImg(https://segmentfault.com/img/remote/1460000018998493); 閱讀原文 同源策略 同源策略/SOP(Same origin pol...
閱讀 2649·2021-11-12 10:36
閱讀 2292·2021-08-23 09:47
閱讀 1735·2019-08-30 15:44
閱讀 1432·2019-08-30 14:10
閱讀 2265·2019-08-29 16:52
閱讀 2364·2019-08-29 16:40
閱讀 1611·2019-08-29 16:17
閱讀 2439·2019-08-26 13:21