main.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package main
  2. import (
  3. "fmt"
  4. "gateway/core/node"
  5. "github.com/gogf/gf/v2/frame/g"
  6. "github.com/gogf/gf/v2/net/ghttp"
  7. "github.com/gogf/gf/v2/util/guid"
  8. "os"
  9. "os/signal"
  10. "strings"
  11. "syscall"
  12. )
  13. func main() {
  14. //node.NewNode().Register("usermodule", "8888", "http://127.0.0.1")
  15. var serverCode string = "gatewayDemo"
  16. var serverPort int = 8099
  17. closeNotify, err := node.NewNode().Register(serverCode, fmt.Sprintf("%d", serverPort))
  18. if err != nil {
  19. panic(err)
  20. }
  21. go func() {
  22. server := g.Server()
  23. server.SetPort(serverPort)
  24. server.BindHandler("POST:/gatewayDemo/{page}", func(r *ghttp.Request) {
  25. r.Response.Header().Set("deductNum", "6")
  26. r.Response.Header().Set("ids", strings.Join(getIdArr(20000), ","))
  27. r.Response.Write(map[string]interface{}{
  28. "code": 1,
  29. "func": r.Get("page"),
  30. "body": r.GetBodyString(),
  31. })
  32. })
  33. server.Run()
  34. }()
  35. quit := make(chan os.Signal, 1)
  36. signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
  37. <-quit
  38. closeNotify()
  39. }
  40. func getIdArr(count int) []string {
  41. r := make([]string, 0, count)
  42. for i := 0; i < count; i++ {
  43. r = append(r, guid.S())
  44. }
  45. //id := primitive.NewObjectID().String()
  46. //fmt.Println(id)
  47. return r
  48. }