成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

關(guān)于小程序websocket全套解決方案,Nginx代理wss

kel / 1543人閱讀

摘要:需求對話提問我在本地能夠使用協(xié)議去鏈接,但是小程序不能使用?;卮鹩捎谛〕绦蚴褂玫氖羌用軈f(xié)議,所以需要使用。這里與的關(guān)系就相當(dāng)于于的關(guān)系。例如至此代理就算全部。

需求對話 提問

我在本地web能夠使用ws協(xié)議去鏈接websocket,但是小程序不能使用。

回答

由于小程序使用的是SSL加密協(xié)議,所以需要使用wss。這里wss與ws的關(guān)系就相當(dāng)于https于http的關(guān)系。

提問

我用的是寶塔Linux,SSL好申請,但是wss我就不會(huì)配置了。

回答

對的寶塔Linux申請SSL很簡單,一鍵申請,相對https實(shí)現(xiàn)就很簡單了。那我們開始做配置吧。但前提你需要保證以下的幾個(gè)必備條件。

前提必備:

需要先為你的websocket域名申請SSL

寶塔Linux(非寶塔其實(shí)一樣能用,但是我這里的教程主要針對寶塔Linux做的)

Nginx代理WSS
這一步主要用來實(shí)現(xiàn)wss轉(zhuǎn)ws(即轉(zhuǎn)到http)

打開管理后臺,點(diǎn)開“網(wǎng)站”->“相應(yīng)的域名”->“配置文件”(我糊的地方只是我的域名和ip信息,不是重要信息,不用在意)

搜索#SSL-END,在這串注釋后面加上以下代碼,圖上我已經(jīng)加上了,所以和你的肯定不一樣

    #wss協(xié)議轉(zhuǎn)發(fā) 小程序里面要訪問的鏈接
    # 訪問: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)于以上的配置我必須要說清楚,proxy_pass http://host:8080后面的地址加端口是你websocket的地址,這里必須加上端口,例如:http://baidu.com:8080,這里需要手動(dòng)改的就是這一個(gè)地方。

先別關(guān)閉這個(gè)窗口,接下來還有

接下來把鼠標(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請?zhí)鎿Q成你的IP,IP在什么地方可以看到呢,看你寶塔linux左上角就有了,對就是那個(gè)。例如:server 114.114.114.114:8080

至此Nginx代理wss就算全部ok。請注意我用的socket端口是8080,如果你的端口被占用,請你更改,當(dāng)然如果改了請把一系列的都改了

小程序websocket使用
官方文檔:https://developers.weixin.qq....

我這里只是做連接測試。只是一個(gè)Demo

  miniWebsocket:function(){
    wx.connectSocket({
      url: "wss://host/wss",
      //這里只需要填寫你開始配置的域名就好,但是請?jiān)谟蛎竺嫣砑右粋€(gè)/wss。例如:wss://baidu.com/wss
    })
    wx.onSocketOpen(function(res){
      console.log(res)
      console.log("打開成功")
    })
    wx.onSocketMessage(function(res){
      console.log("收到服務(wù)器信息"+JSON.stringify(res))
    })
    wx.onSocketOpen(function (res) {
      console.log("WebSocket連接已打開!")
      console.log("數(shù)據(jù)發(fā)送")
      wx.sendSocketMessage({
        data: "ekeylee"
      })   
    })
  }

上圖就是我已經(jīng)配置好小程序的返回信息,如果有什么地方寫的不是很清楚,請文末留言,感謝

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40143.html

相關(guān)文章

  • 關(guān)于程序websocket全套解決方案Nginx代理wss

    摘要:需求對話提問我在本地能夠使用協(xié)議去鏈接,但是小程序不能使用。回答由于小程序使用的是加密協(xié)議,所以需要使用。這里與的關(guān)系就相當(dāng)于于的關(guān)系。例如至此代理就算全部。 需求對話 提問 我在本地web能夠使用ws協(xié)議去鏈接websocket,但是小程序不能使用。 回答 由于小程序使用的是SSL加密協(xié)議,所以需要使用wss。這里wss與ws的關(guān)系就相當(dāng)于https于http的關(guān)系。 提問 我用的是...

    Zoom 評論0 收藏0
  • 九種跨域方式實(shí)現(xiàn)原理(完整版)

    摘要:二跨域解決方案原理利用標(biāo)簽沒有跨域限制的漏洞,網(wǎng)頁可以得到從其他來源動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)。使用反向代理實(shí)現(xiàn)跨域,是最簡單的跨域方式。 前言 前后端數(shù)據(jù)交互經(jīng)常會(huì)碰到請求跨域,什么是跨域,以及有哪幾種跨域方式,這是本文要探討的內(nèi)容。 本文完整的源代碼請猛戳github博客,紙上得來終覺淺,建議動(dòng)手敲敲代碼 一、什么是跨域? 1.什么是同源策略及其限制內(nèi)容? 同源策略是一種約定,它是瀏覽器最核心...

    edgardeng 評論0 收藏0
  • 九種跨域方式實(shí)現(xiàn)原理(完整版)

    摘要:二跨域解決方案原理利用標(biāo)簽沒有跨域限制的漏洞,網(wǎng)頁可以得到從其他來源動(dòng)態(tài)產(chǎn)生的數(shù)據(jù)。使用反向代理實(shí)現(xiàn)跨域,是最簡單的跨域方式。 前言 前后端數(shù)據(jù)交互經(jīng)常會(huì)碰到請求跨域,什么是跨域,以及有哪幾種跨域方式,這是本文要探討的內(nèi)容。 本文完整的源代碼請猛戳github博客,紙上得來終覺淺,建議動(dòng)手敲敲代碼 一、什么是跨域? 1.什么是同源策略及其限制內(nèi)容? 同源策略是一種約定,它是瀏覽器最核心...

    justCoding 評論0 收藏0
  • 九種 “姿勢” 讓你徹底解決跨域問題

    摘要:什么是跨域當(dāng)協(xié)議域名端口號,有一個(gè)或多個(gè)不同時(shí),有希望可以訪問并獲取數(shù)據(jù)的現(xiàn)象稱為跨域訪問,同源策略限制下都是不支持跨域的。命名是隨意的,只要是符合一級域名與二級域名的關(guān)系即可,然后訪問。 showImg(https://segmentfault.com/img/remote/1460000018998493); 閱讀原文 同源策略 同源策略/SOP(Same origin pol...

    charles_paul 評論0 收藏0

發(fā)表評論

0條評論

kel

|高級講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<