Browse Source

添加mqtt丢弃响应

yjp 1 year ago
parent
commit
8e4695aeb9
1 changed files with 6 additions and 0 deletions
  1. 6 0
      mqtt_binding/mqtt_binding.go

+ 6 - 0
mqtt_binding/mqtt_binding.go

@@ -13,6 +13,8 @@ import (
 	"strings"
 )
 
+var ErrIgnoreBusinessResult = errors.New("忽略业务结果")
+
 type BusinessFunc[I any, O any] func(c *mqtt_client.MqttClient, inputModel I) (O, error)
 type BindingFunc[O any] func(c *mqtt_client.MqttClient, item *router.Item, request any, sendFunc response.SendFunc[O]) bool
 
@@ -149,6 +151,10 @@ func (item *BindItem[I, O]) bind(r *router.Router, bindingResponseIdentifier res
 		// 执行业务函数
 		if item.BusinessFunc != nil {
 			outputModel, err := item.BusinessFunc(mqttClientInstance, inputModel)
+			if errors.Is(err, ErrIgnoreBusinessResult) {
+				return
+			}
+
 			item.ResponseFunc(mqttClientInstance, routerItem, responseIdentifier, outputModel, err)
 			return
 		}