NatsServer.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package Nats
  2. import (
  3. "Yunlot/Nats/NatsServer"
  4. "Yunlot/lib"
  5. "Yunlot/logs"
  6. "github.com/nats-io/nats-server/v2/server"
  7. "github.com/nats-io/nats.go"
  8. "time"
  9. )
  10. var YunlotNats *nats.Conn
  11. // 内部 Nats 通讯
  12. func Nats_Server_init() {
  13. opts := &server.Options{
  14. ServerName: "Yunlot-nats-server",
  15. Port: 6503,
  16. }
  17. // Initialize new server with options
  18. ns, err := server.NewServer(opts)
  19. if err != nil {
  20. panic(any(err))
  21. }
  22. // Start the server via goroutine
  23. go ns.Start()
  24. // Wait for server to be ready for connections
  25. if !ns.ReadyForConnections(4 * time.Second) {
  26. panic(any("not ready for connection"))
  27. }
  28. logs.Println("Nats_Server OK!")
  29. // 连接Nats服务器
  30. lib.Nats, err = nats.Connect("nats://127.0.0.1:6503", nats.MaxReconnects(10), nats.ReconnectWait(10*time.Second),
  31. nats.DisconnectErrHandler(func(nc *nats.Conn, err error) {
  32. // handle disconnect error event
  33. logs.PrintlnError("natsS.DisconnectErrHandler 断开 ", err)
  34. }),
  35. nats.ReconnectHandler(func(nc *nats.Conn) {
  36. // handle reconnect event
  37. logs.PrintlnError("natsS.ReconnectHandler, 已经重新连接 ")
  38. }))
  39. if err != nil {
  40. logs.Println("natsS 连接失败!")
  41. panic(any("natsS 连接失败!" + "nats://127.0.0.1:6503"))
  42. }
  43. if err != nil {
  44. logs.Println("nats 连接失败!")
  45. panic(any(err))
  46. }
  47. logs.Println("nats OK!")
  48. go NatsServer.NatsServer_Device()
  49. go NatsServer.NatsServer_Product()
  50. }