feat(ws): tls server option

This commit is contained in:
leandrofars 2024-02-17 11:16:17 -03:00
parent 4c0da5ab71
commit 34d75b65d7
4 changed files with 19 additions and 7 deletions

View File

@ -2,3 +2,4 @@ SERVER_PORT=""
SERVER_AUTH_TOKEN=""
CONTROLLER_EID=""
SERVER_AUTH_ENABLE=""
SERVER_TLS_ENABLE=""

View File

@ -1,2 +1,3 @@
.env.local
ws
*.pem

View File

@ -15,6 +15,7 @@ type Config struct {
Auth bool // server auth enable/disable
Token string // controller auth token
ControllerEID string // controller endpoint id
Tls bool // enable/diable websockets server tls
}
func NewConfig() Config {
@ -36,6 +37,7 @@ func NewConfig() Config {
flToken := flag.String("token", lookupEnvOrString("SERVER_AUTH_TOKEN", ""), "Controller auth token")
flAuth := flag.Bool("auth", lookupEnvOrBool("SERVER_AUTH_ENABLE", false), "Server auth enable/disable")
flControllerEid := flag.String("controller-eid", lookupEnvOrString("CONTROLLER_EID", "oktopusController"), "Controller eid")
flTls := flag.Bool("tls", lookupEnvOrBool("SERVER_TLS_ENABLE", false), "Enable/diable websockets server tls")
flHelp := flag.Bool("help", false, "Help")
flag.Parse()
/* -------------------------------------------------------------------------- */
@ -50,6 +52,7 @@ func NewConfig() Config {
Token: *flToken,
Auth: *flAuth,
ControllerEID: *flControllerEid,
Tls: *flTls,
}
}

View File

@ -24,12 +24,19 @@ func StartNewServer(c config.Config) {
handler.ServeController(w, r, c.Token, c.ControllerEID, c.Auth)
})
log.Println("Websockets server running")
go func() {
if c.Tls {
log.Println("Websockets server running with TLS")
err := http.ListenAndServeTLS(c.Port, "cert.pem", "key.pem", r)
if err != nil {
log.Fatal("ListenAndServeTLS: ", err)
}
} else {
log.Println("Websockets server running")
err := http.ListenAndServe(c.Port, r)
if err != nil {
log.Fatal("ListenAndServe: ", err)
}
}
}()
}