yjp 1 vuosi sitten
vanhempi
commit
3a9208241a

+ 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
 	var responseIdentifier response.Identifier
 	if item.ResponseIdentifier != nil {
 	if item.ResponseIdentifier != nil {
-		responseIdentifier = item.ResponseIdentifier
+		responseIdentifier = item.ResponseIdentifier.Copy()
 	} else if bindingResponseIdentifier != nil {
 	} 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
 	return req.CallerIdentifier
 }
 }
 
 
+func (req *CallerIdentifierRequest) Copy() response.Identifier {
+	return &CallerIdentifierRequest{}
+}
+
 var validate = validator.New(validator.WithRequiredStructEnabled())
 var validate = validator.New(validator.WithRequiredStructEnabled())
 
 
 func BindingJson[O any](c *mqtt_client.MqttClient, item *router.Item, request any,
 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 {
 type Identifier interface {
 	Identifier() string
 	Identifier() string
+	Copy() Identifier
 }
 }
 
 
 type SendFunc[T any] func(c *mqtt_client.MqttClient, item *router.Item, identifier Identifier, data T, err error)
 type SendFunc[T any] func(c *mqtt_client.MqttClient, item *router.Item, identifier Identifier, data T, err error)