当前位置: > > > > Go:将 websocket 请求发送到代理端口
来源:stackoverflow
2024-04-25 08:18:23
0浏览
收藏
大家好,我们又见面了啊~本文《Go:将 websocket 请求发送到代理端口》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~
问题内容
我有一个 Envoy 代理实例,配置为代理 http 和 websocket 请求。请注意,这不是 CONNECT 代理。我希望我的 websocket 客户端创建一个 websocket 请求,就像将其发送到原始目的地一样,然后将有效负载传递到代理的侦听器。
连接到本地代理的推荐方式是什么?我相信这取决于所使用的特定 Go websocket 包。我可以看到允许覆盖所使用的 http.Client 的包,但目标地址是使用指定的 websocket URL 确定的。我唯一的选择是将请求直接发送到 ws://proxy_ip:proxy_port/path
,并使用代理配置为用于路由的一些自定义 HTTP 标头指定目标。我不太喜欢这种方法。
正确答案
使用 拨打与请求不同的地址:
d := websocket.Dialer{ NetDialContext: func(ctx context.Context, network, addr string) (net.Conn, error) { return net.DialContext(ctx, network, "proxy_ip:proxy_port") }, } c, r, err := d.Dial("ws://example.com/path", nil) if err != nil { // handle error }
今天关于《Go:将 websocket 请求发送到代理端口》的内容介绍就到此结束,如果有什么疑问或者建议,可以在公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!