79 lines
1.8 KiB
Go
79 lines
1.8 KiB
Go
package contracts
|
|
|
|
import "github.com/samber/do"
|
|
|
|
type Mqtt interface {
|
|
Start() error
|
|
Stop() error
|
|
Restart() error
|
|
|
|
// 消息推送
|
|
// @param topic 订阅的主题
|
|
// @param msg 传递的消息
|
|
// @param retain 是否保留
|
|
// @param qos 传递的消息,
|
|
// 0: 至多一次, 如果发送失败,也就算了
|
|
// 1: 至少一次, 消息将确保至少被传递一次,但可能会重复发送
|
|
// 2: 确保只有一次, 确保消息仅被传递一次且没有重复传递
|
|
Publish(topic string, msg any, retain bool, qos byte) error
|
|
|
|
// 关闭消息队列
|
|
Close(origin string)
|
|
}
|
|
|
|
type MqttController interface {
|
|
Controller
|
|
// 订阅事件
|
|
OnSubscribed(GlobalParams) error
|
|
// 取消订阅事件
|
|
OnUnsubscribed(GlobalParams) error
|
|
// 消息发布事件
|
|
OnMessage(GlobalParams) error
|
|
// 保留类型消息事件
|
|
OnRetainMessage(GlobalParams) error
|
|
// Qos消息完成事件
|
|
OnQosMessage(GlobalParams) error
|
|
// 客户端超时事件
|
|
OnClientExpired(GlobalParams) error
|
|
// 保留消息超时事件
|
|
OnRetainedExpired(GlobalParams) error
|
|
}
|
|
|
|
type MqttHandleController struct {
|
|
Controller
|
|
}
|
|
|
|
func (this MqttHandleController) OnSubscribed(g GlobalParams) error {
|
|
return nil
|
|
}
|
|
|
|
func (this MqttHandleController) OnUnsubscribed(g GlobalParams) error {
|
|
return nil
|
|
}
|
|
|
|
func (this MqttHandleController) OnMessage(g GlobalParams) error {
|
|
return nil
|
|
}
|
|
|
|
func (this MqttHandleController) OnRetainMessage(g GlobalParams) error {
|
|
return nil
|
|
}
|
|
|
|
func (this MqttHandleController) OnQosMessage(g GlobalParams) error {
|
|
return nil
|
|
}
|
|
|
|
func (this MqttHandleController) OnClientExpired(g GlobalParams) error {
|
|
return nil
|
|
}
|
|
|
|
func (this MqttHandleController) OnRetainedExpired(g GlobalParams) error {
|
|
return nil
|
|
}
|
|
|
|
func NewMqttController(container *do.Injector) MqttController {
|
|
return &MqttHandleController{
|
|
Controller: &BaseController{container},
|
|
}
|
|
}
|