Files
contracts/mqtt.go
T
what 8b122816a1 重构: 各类型 Controller 接口精简,配合 framework-v2 internal/handler 收拢公共实现
app.go/condflow.go/cron.go/event_stream.go/executor.go/gobridge.go/grpc.go/job.go/mcp.go/mqtt.go/res_virtual_table.go/ws.go/controller.go/support/service.go 精简掉搬到 framework-v2 internal/handler 里的公共默认实现,只保留接口定义。
2026-07-22 09:14:57 +08:00

58 lines
1.6 KiB
Go

package contracts
import (
"git.fsdpf.net/go/req"
)
type MqttService interface {
Start() error
Shutdown() error
Restart() error
// 消息推送
//
// Example:
//
// Parameters:
// topic 订阅的主题
// msg 传递的消息
// retain 是否保留
// qos 传递的消息,
// 0: 至多一次, 如果发送失败,也就算了
// 1: 至少一次, 消息将确保至少被传递一次,但可能会重复发送
// 2: 确保只有一次, 确保消息仅被传递一次且没有重复传递
// Returns:
// error - 执行结果
Publish(topic string, msg any, retain bool, qos byte) error
// 关闭消息队列
Close(origin string)
}
type Mqtt interface {
Controller
// 链接
OnConnect(g req.GlobalParams) error
// 断开链接
OnDisconnect(g req.GlobalParams) error
// 订阅事件
OnSubscribed(g req.GlobalParams, topic string) error
// 取消订阅事件
OnUnsubscribed(g req.GlobalParams, topic string) error
// 消息发布事件
OnMessage(g req.GlobalParams, topic string, retain bool, qos byte) error
// 消息被丢弃
OnMessageDropped(g req.GlobalParams, topic string, retain bool, qos byte) error
// 原生消息修改
OnPublish(g req.GlobalParams, topic string, retain bool, qos byte, raw []byte) ([]byte, error)
// 保留类型消息事件
// OnRetainMessage(g GlobalParams, topic string) error
// Qos消息完成事件
// OnQosMessage(g GlobalParams, topic string) error
// 客户端超时事件
// OnClientExpired(GlobalParams) error
// 保留消息超时事件
// OnRetainedExpired(g GlobalParams, topic string) error
}