connection_options.go raw
1 //go:build !js
2
3 package nostr
4
5 import (
6 "crypto/tls"
7 "net/http"
8 "net/textproto"
9
10 ws "github.com/coder/websocket"
11 )
12
13 var defaultConnectionOptions = &ws.DialOptions{
14 CompressionMode: ws.CompressionContextTakeover,
15 HTTPHeader: http.Header{
16 textproto.CanonicalMIMEHeaderKey("User-Agent"): {"github.com/nbd-wtf/go-nostr"},
17 },
18 }
19
20 func getConnectionOptions(requestHeader http.Header, tlsConfig *tls.Config) *ws.DialOptions {
21 if requestHeader == nil && tlsConfig == nil {
22 return defaultConnectionOptions
23 }
24
25 return &ws.DialOptions{
26 HTTPHeader: requestHeader,
27 CompressionMode: ws.CompressionContextTakeover,
28 HTTPClient: &http.Client{
29 Transport: &http.Transport{
30 TLSClientConfig: tlsConfig,
31 },
32 },
33 }
34 }
35