@@ -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()
}
// 给单个路由增加中间件
@@ -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,
@@ -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)