yjp 1 год назад
Родитель
Сommit
3a9208241a
3 измененных файлов с 7 добавлено и 2 удалено
  1. 2 2
      mqtt_binding/mqtt_binding.go
  2. 4 0
      mqtt_binding/request/request.go
  3. 1 0
      mqtt_binding/response/type.go

+ 2 - 2
mqtt_binding/mqtt_binding.go

@@ -87,9 +87,9 @@ func (item *BindItem[I, O]) bind(r *router.Router, bindingResponseIdentifier res
 
 	var responseIdentifier response.Identifier
 	if item.ResponseIdentifier != nil {
-		responseIdentifier = item.ResponseIdentifier
+		responseIdentifier = item.ResponseIdentifier.Copy()
 	} else if bindingResponseIdentifier != nil {
-		responseIdentifier = bindingResponseIdentifier
+		responseIdentifier = bindingResponseIdentifier.Copy()
 	}
 
 	// 给单个路由增加中间件

+ 4 - 0
mqtt_binding/request/request.go

@@ -18,6 +18,10 @@ func (req *CallerIdentifierRequest) Identifier() string {
 	return req.CallerIdentifier
 }
 
+func (req *CallerIdentifierRequest) Copy() response.Identifier {
+	return &CallerIdentifierRequest{}
+}
+
 var validate = validator.New(validator.WithRequiredStructEnabled())
 
 func BindingJson[O any](c *mqtt_client.MqttClient, item *router.Item, request any,

+ 1 - 0
mqtt_binding/response/type.go

@@ -7,6 +7,7 @@ import (
 
 type Identifier interface {
 	Identifier() string
+	Copy() Identifier
 }
 
 type SendFunc[T any] func(c *mqtt_client.MqttClient, item *router.Item, identifier Identifier, data T, err error)