mirror of
https://github.com/0ceanSlim/grain.git
synced 2024-10-30 01:26:32 +00:00
moved timeouts to config
This commit is contained in:
parent
ea0a29d4b9
commit
f5a0f6560d
@ -6,7 +6,10 @@ type ServerConfig struct {
|
||||
Database string `yaml:"database"`
|
||||
} `yaml:"mongodb"`
|
||||
Server struct {
|
||||
Port string `yaml:"port"`
|
||||
Port string `yaml:"port"`
|
||||
ReadTimeout int `yaml:"read_timeout"` // Timeout in seconds
|
||||
WriteTimeout int `yaml:"write_timeout"` // Timeout in seconds
|
||||
IdleTimeout int `yaml:"idle_timeout"` // Timeout in seconds
|
||||
} `yaml:"server"`
|
||||
RateLimit RateLimitConfig `yaml:"rate_limit"`
|
||||
PubkeyWhitelist PubkeyWhitelistConfig `yaml:"pubkey_whitelist"`
|
||||
|
33
main.go
33
main.go
@ -62,9 +62,9 @@ func startServer(config *configTypes.ServerConfig, mux *http.ServeMux) {
|
||||
server := &http.Server{
|
||||
Addr: config.Server.Port,
|
||||
Handler: mux,
|
||||
ReadTimeout: 10 * time.Second,
|
||||
WriteTimeout: 10 * time.Second,
|
||||
IdleTimeout: 120 * time.Second,
|
||||
ReadTimeout: time.Duration(config.Server.ReadTimeout) * time.Second,
|
||||
WriteTimeout: time.Duration(config.Server.WriteTimeout) * time.Second,
|
||||
IdleTimeout: time.Duration(config.Server.IdleTimeout) * time.Second,
|
||||
}
|
||||
fmt.Printf("Server is running on http://localhost%s\n", config.Server.Port)
|
||||
err := server.ListenAndServe()
|
||||
@ -72,20 +72,21 @@ func startServer(config *configTypes.ServerConfig, mux *http.ServeMux) {
|
||||
fmt.Println("Error starting server:", err)
|
||||
}
|
||||
}
|
||||
|
||||
var wsServer = &websocket.Server{
|
||||
Handshake: func(config *websocket.Config, r *http.Request) error {
|
||||
// Skip origin check
|
||||
return nil
|
||||
},
|
||||
Handler: websocket.Handler(relay.WebSocketHandler),
|
||||
Handshake: func(config *websocket.Config, r *http.Request) error {
|
||||
// Skip origin check
|
||||
return nil
|
||||
},
|
||||
Handler: websocket.Handler(relay.WebSocketHandler),
|
||||
}
|
||||
|
||||
func ListenAndServe(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Header.Get("Upgrade") == "websocket" {
|
||||
wsServer.ServeHTTP(w, r)
|
||||
} else if r.Header.Get("Accept") == "application/nostr+json" {
|
||||
nip.RelayInfoHandler(w, r)
|
||||
} else {
|
||||
app.RootHandler(w, r)
|
||||
}
|
||||
}
|
||||
if r.Header.Get("Upgrade") == "websocket" {
|
||||
wsServer.ServeHTTP(w, r)
|
||||
} else if r.Header.Get("Accept") == "application/nostr+json" {
|
||||
nip.RelayInfoHandler(w, r)
|
||||
} else {
|
||||
app.RootHandler(w, r)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user