55 lines
1.4 KiB
Go
55 lines
1.4 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/tecamino/tecamino-dbm/args"
|
|
"github.com/tecamino/tecamino-dbm/dbm"
|
|
ws "github.com/tecamino/tecamino-dbm/websocket"
|
|
)
|
|
|
|
func main() {
|
|
// cli arguments
|
|
a := args.Init()
|
|
|
|
// initiate new database manger
|
|
dbmHandler, err := dbm.NewDbmHandler(a)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
//save database after exeutabe ends
|
|
defer dbmHandler.SaveDb()
|
|
|
|
//initialize new server
|
|
dbmHandler.Log.Debug("main", "initialize new server instance")
|
|
s := ws.NewServer(a.AllowOrigins, 9000)
|
|
|
|
//set routes
|
|
dbmHandler.Log.Debug("main", "setting routes")
|
|
s.Routes.GET("/ws", dbmHandler.WebSocket)
|
|
s.Routes.GET("/saveData", dbmHandler.SaveData)
|
|
s.Routes.POST("/json_data", dbmHandler.Json_Data)
|
|
s.Routes.DELETE("/json_data", dbmHandler.Delete)
|
|
s.Routes.GET("/", func(c *gin.Context) {
|
|
c.String(200, "DBM WebSocket Server is running!")
|
|
})
|
|
|
|
// start http server
|
|
go func() {
|
|
dbmHandler.Log.Info("main", fmt.Sprintf("http listen on ip: %s port: %d", a.Ip, a.Port.Http))
|
|
if err := s.ServeHttp(a.Ip, a.Port.Http); err != nil {
|
|
dbmHandler.Log.Error("main", "error http server "+err.Error())
|
|
panic(err)
|
|
}
|
|
}()
|
|
|
|
// start https server
|
|
dbmHandler.Log.Info("main", fmt.Sprintf("https listen on ip: %s port: %d", a.Ip, a.Port.Https))
|
|
if err := s.ServeHttps(a.Ip, a.Port.Https, a.Cert); err != nil {
|
|
dbmHandler.Log.Error("main", "error http server "+err.Error())
|
|
panic(err)
|
|
}
|
|
|
|
}
|