Replaced legacy `*.orly` module imports with `next.orly.dev/pkg` paths across the codebase for consistency. Removed legacy `go.mod` files from sub-packages, consolidating dependency management. Added Dockerfiles and configurations for benchmarking environments.
37 lines
729 B
Go
37 lines
729 B
Go
//go:build !js
|
|
|
|
package ws
|
|
|
|
import (
|
|
"crypto/tls"
|
|
"net/http"
|
|
"net/textproto"
|
|
|
|
ws "github.com/coder/websocket"
|
|
)
|
|
|
|
var defaultConnectionOptions = &ws.DialOptions{
|
|
CompressionMode: ws.CompressionContextTakeover,
|
|
HTTPHeader: http.Header{
|
|
textproto.CanonicalMIMEHeaderKey("User-Agent"): {"github.com/nbd-wtf/go-nostr"},
|
|
},
|
|
}
|
|
|
|
func getConnectionOptions(
|
|
requestHeader http.Header, tlsConfig *tls.Config,
|
|
) *ws.DialOptions {
|
|
if requestHeader == nil && tlsConfig == nil {
|
|
return defaultConnectionOptions
|
|
}
|
|
|
|
return &ws.DialOptions{
|
|
HTTPHeader: requestHeader,
|
|
CompressionMode: ws.CompressionContextTakeover,
|
|
HTTPClient: &http.Client{
|
|
Transport: &http.Transport{
|
|
TLSClientConfig: tlsConfig,
|
|
},
|
|
},
|
|
}
|
|
}
|