添加服务相关方法&增加日志

This commit is contained in:
2025-09-15 15:53:11 +08:00
parent 917ae30a86
commit ed3bd2bd80
6 changed files with 83 additions and 12 deletions

View File

@@ -5,16 +5,6 @@ import (
"time"
)
var device *Device
// 获取设备相关RPC类
func GetDevice() *Device {
if device == nil {
device = &Device{}
}
return device
}
// 设备相关RPC
type Device struct{}
@@ -176,3 +166,13 @@ func (d *Device) SaveUpgradeResult(upgradeTaskId uint32, status uint8, finishTim
}
return nil
}
var device *Device
// 获取设备相关RPC类
func GetDevice() *Device {
if device == nil {
device = &Device{}
}
return device
}

View File

@@ -13,6 +13,7 @@ import (
"os"
"time"
"go.uber.org/zap"
"golang.org/x/net/http2"
)
@@ -24,6 +25,7 @@ type Request struct {
port uint16
rootCertPath string
client *http.Client
logger *zap.Logger
}
// 发送请求
@@ -58,11 +60,19 @@ func (r *Request) Send(methodName string, body any, responseBody any) error {
return fmt.Errorf("response body json unmarshal fail: %v", err)
}
if r.logger != nil {
r.logger.Debug("request: ",
zap.String("method", methodName),
zap.String("request", string(bodyByte)),
zap.String("response", string(responseBodyByte)),
)
}
return nil
}
// 初始化
func Initiate(host string, port uint16, rootCertPath string) error {
func Initiate(host string, port uint16, rootCertPath string, logger *zap.Logger) error {
rootCert, err := os.ReadFile(rootCertPath)
if err != nil {
return fmt.Errorf("cert file read fail")
@@ -70,6 +80,7 @@ func Initiate(host string, port uint16, rootCertPath string) error {
defaultRequest.host = host
defaultRequest.port = port
defaultRequest.rootCertPath = rootCertPath
defaultRequest.logger = logger
certPool := x509.NewCertPool()
certPool.AppendCertsFromPEM(rootCert)

46
pkg/rpc/server.go Normal file
View File

@@ -0,0 +1,46 @@
package rpc
import "fmt"
// 服务相关RPC
type Server struct{}
// 获取Websocket签名信息
func (s *Server) GetWebsocketSignData(sign string) (*WebsocketSignData, error) {
body := map[string]any{
"sign": sign,
}
result := &Result[WebsocketSignData]{}
if err := GetRequest().Send("server.get_websocket_sign", body, result); err != nil {
return nil, err
}
if result.Code != 0 {
return nil, fmt.Errorf("%s", result.Message)
}
return &result.Data, nil
}
// 删除Websocket签名
func (s *Server) DeleteWebsocketSign(sign string) error {
body := map[string]any{
"sign": sign,
}
result := &Result[WebsocketSignData]{}
if err := GetRequest().Send("server.get_websocket_sign", body, result); err != nil {
return err
}
if result.Code != 0 {
return fmt.Errorf("%s", result.Message)
}
return nil
}
var server *Server
// 获取服务相关RPC类
func GetServer() *Server {
if server == nil {
server = &Server{}
}
return server
}

View File

@@ -66,3 +66,9 @@ type DeviceAttributeOption struct {
Max *uint32 `json:"max,omitempty"`
} `json:"attribute"`
}
// Websocket签名数据
type WebsocketSignData struct {
UserId uint32 `json:"user_id"`
Platform string `json:"platform"`
}