ສຳລັບ forward proxy HTTP, ຕັ້ງຄ່າ Dialer.Proxy ຂອງ Gorilla. URL WebSocket ຍັງເປັນປາຍທາງ:

proxyURL, err := url.Parse("http://proxy.example:8080")
if err != nil {
    return err
}
dialer := websocket.Dialer{
    Proxy: http.ProxyURL(proxyURL),
    HandshakeTimeout: 15 * time.Second,
}
conn, response, err := dialer.DialContext(
    ctx, "wss://events.example/stream", nil)

ສ່ວນນີ້ຢູ່ໃນຟັງຊັນເຊື່ອມຕໍ່ຂອງແອັບຯ ໂດຍມີ net/url, net/http, time ແລະ github.com/gorilla/websocket. ຈັດການ err ແລະ ການຕອບສະໜອງ handshake ທີ່ລົ້ມເຫຼວ, ຈາກນັ້ນຈັດການ conn ຜ່ານວົງຈອນຊີວິດຂໍ້ຄວາມ ແລະ ການປິດປົກກະຕິ. ສຳລັບປາຍທາງ WSS ສາທາລະນະທີ່ອະນຸຍາດ, ລາຍຊື່ proxy HTTP ໃຫ້ຜູ້ສະໝັກສຳລັບ proxyURL.

dialer ຂອງ proxy HTTP ເປີດການເຊື່ອມຕໍ່ກາງ ແລະ ສົ່ງ CONNECT ສຳລັບປາຍທາງ. ສຳລັບ wss, TLS ຂອງປາຍທາງຜ່ານ tunnel ທີ່ສ້າງແລ້ວກ່ອນ handshake WebSocket.

NetDialContext ປັບແຕ່ງການເຊື່ອມຕໍ່ TCP ລະດັບຕ່ຳ. ການຊີ້ໄປຫາພອດ proxy ຢ່າງດຽວບໍ່ໄດ້ຈັດຕັ້ງ CONNECT. ເມື່ອ Proxy ຖືກຕັ້ງຄ່ານຳ, callback ເຄືອຂ່າຍທີ່ປັບແຕ່ງຈະເຊື່ອມຕໍ່ກັບຕົວກາງ, ຂະນະທີ່ຊັ້ນ proxy ຈັດການການເຈລະຈາ.

ເກັບຊື່ໂຮສປາຍທາງໄວ້ໃນ URL wss ເພື່ອໃຫ້ການກວດສອບຕົວຕົນ TLS ປົກກະຕິໃຊ້ກັບເຊີບເວີທີ່ຕັ້ງໃຈ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ