真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

go語言調(diào)用代理 go總代理

[golang] fasthttp 使用http代理

golang net/http標(biāo)準(zhǔn)庫的client是可以配置各種代理的,http/https/sock5等,不過fasthttp僅支持配置sock5代理,通過定義fasthttp dialfunc實(shí)現(xiàn):

成都創(chuàng)新互聯(lián)公司專注于雁塔網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供雁塔營銷型網(wǎng)站建設(shè),雁塔網(wǎng)站制作、雁塔網(wǎng)頁設(shè)計(jì)、雁塔網(wǎng)站官網(wǎng)定制、微信平臺小程序開發(fā)服務(wù),打造雁塔網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供雁塔網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

項(xiàng)目中碰到的問題是,ops只提供了用squid搭建的http代理,所以是想重新定義一個(gè)http代理的dialfunc,找了fasthttp github倉庫的issue,作者提供了一個(gè)dialFunc

經(jīng)測試,訪問https的站點(diǎn)是OK的,訪問http的站點(diǎn)不行,代理連接不上。先說一下http/https代理的區(qū)別,再說原因。

使用代理訪問https網(wǎng)站時(shí),會先發(fā)CONNECT請求,讓代理與目標(biāo)站點(diǎn)建立一個(gè)http tunnel,之后在這個(gè)tunnel基礎(chǔ)上進(jìn)行傳輸,對應(yīng)到上面的dialFunc過程就是:

可以看到http站點(diǎn)是不需要發(fā)CONNECT請求的,而是直接將目標(biāo)站點(diǎn)的url作為path 填寫在http請求頭中。

為何上面的dialfunc訪問http站點(diǎn)不行呢,查了squid代理的文檔,發(fā)現(xiàn)squid默認(rèn)會禁止非https站點(diǎn)通過CONNECT方法建立通道,自己搭了個(gè)squid代理去掉配置項(xiàng),發(fā)現(xiàn)上面的dialfunc是可以訪問http、https站點(diǎn)的,就是說http,https都先建立通過,再請求。

看了fasthttp的源碼,沒辦法在請求前修改request header中的path為目標(biāo)站點(diǎn)url,所以如果需要通過fasthttp使用http代理,那么可以使用上面的dialfunc,同時(shí)代理需要允許非443端口的站點(diǎn)可以建立通道。如果做不到這一點(diǎn),那么還是建議使用標(biāo)準(zhǔn)庫net/http的client,會更方便一點(diǎn)。

golang 使用Socket5代理

socket代理又分為socket4和sockt5代理,其中socket4只能支持TCP協(xié)議,而socket5則同時(shí)支持TCP協(xié)議和UDP協(xié)議。

APNS推送Golang SDK使用Proxy代理

蘋果的消息推送是通過請求域名: 實(shí)現(xiàn)的,該域名解析結(jié)果為美國,這引發(fā)了兩個(gè)問題:

1、接口請求時(shí)間長,性能低,而且容易請求超時(shí)報(bào)錯(cuò)

2、高峰期推送請求錯(cuò)誤率升高

總體思路:增加一個(gè)美國代理服務(wù)器,通過代理服務(wù)器請求蘋果消息推送服務(wù)

1、原來流程

2、現(xiàn)在流程

3、具體方案實(shí)施選擇

選擇一:proxy服務(wù)器,部署一個(gè)正向代理服務(wù),提供push消息的正向代理,消息通過代理服務(wù)器送達(dá)蘋果服務(wù)端

選擇二:proxy服務(wù)器,獨(dú)立實(shí)現(xiàn)、部署一個(gè) 標(biāo)準(zhǔn)的apns服務(wù),負(fù)責(zé) ios消息推送。將需要走美國節(jié)點(diǎn)的請求轉(zhuǎn)發(fā)到該proxy節(jié)點(diǎn)

具體情況、具體分析,應(yīng)思考的點(diǎn):

問題一、蘋果官方提供的SDK中,不支持設(shè)置代理服務(wù)器。官方SDK不適合更改,對以后系統(tǒng)更新不利

問題二、只有蘋果的push服務(wù)需要代理,其他例如華為、小米、vivo不應(yīng)走海外代理

問題三、代理安全性

問題四、代理方案下,有重試邏輯。 如何準(zhǔn)確定義和判斷失敗, 可能會引起消息重復(fù)推送

問題五、實(shí)現(xiàn)簡單、有效,正向代理方式:只需實(shí)現(xiàn)一個(gè)實(shí)例化對象方法,其他利用原始sdk即可。獨(dú)立apns服務(wù)方式:需要實(shí)現(xiàn)一個(gè)apns服務(wù),國內(nèi)、國外均需服務(wù)部署,需要增加獨(dú)立的開發(fā)和運(yùn)營成本,另外還得改造調(diào)用服務(wù),實(shí)現(xiàn)請求調(diào)度,優(yōu)點(diǎn)服務(wù)獨(dú)立、單一,具備一個(gè)單獨(dú)微服務(wù)條件

github.com/sideshow/apns2

方法一: 修改SDK文件

第一步:設(shè)置環(huán)境變量

第二步:修改apns2.NewClient方法

方法二: 從新定義一個(gè)NewClient方法


網(wǎng)站名稱:go語言調(diào)用代理 go總代理
網(wǎng)頁地址:http://weahome.cn/article/higsps.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部