服务发现基础逻辑
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io"
|
||||
"net/http"
|
||||
"work_cation/models"
|
||||
)
|
||||
|
||||
type ClientService struct {
|
||||
}
|
||||
|
||||
var Client = &ClientService{}
|
||||
|
||||
func (c *ClientService) GetUser(online *models.Online) (*models.Users, error) {
|
||||
var user models.Users
|
||||
resp, err := http.Get(online.Url("/user"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
defer resp.Body.Close()
|
||||
data, err := io.ReadAll(resp.Body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = json.Unmarshal(data, &user)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &user, nil
|
||||
}
|
||||
+3
-2
@@ -53,8 +53,9 @@ func (s *serverService) StatusOffline() error {
|
||||
|
||||
func (s *serverService) StartListenServer() error {
|
||||
router := gin.New()
|
||||
router.GET("/", func(c *gin.Context) {
|
||||
c.JSON(200, gin.H{"message": "hello"})
|
||||
router.GET("/user", func(c *gin.Context) {
|
||||
user := repo.User.GetUserInfo(global.DB)
|
||||
c.JSON(200, user)
|
||||
})
|
||||
|
||||
srv := &http.Server{
|
||||
|
||||
@@ -48,7 +48,6 @@ func (s *zeroconfService) FindService() (chan *models.Online, error) {
|
||||
go func(results <-chan *zeroconf.ServiceEntry) {
|
||||
for entry := range results {
|
||||
if entry.ServiceInstanceName() == fmt.Sprintf("%s._http._tcp.local.", cfg.T.ZeroconfKey) {
|
||||
//fmt.Printf("发现服务: %s \nIP:%s:%d \nInfo: %v\n", entry.ServiceInstanceName(), entry.AddrIPv4, entry.Port, entry.Text)
|
||||
online, err := models.NewOnline(entry)
|
||||
if err != nil {
|
||||
continue
|
||||
|
||||
Reference in New Issue
Block a user