[feat] 新增 mqtt
This commit is contained in:
parent
ee4b5fe3c6
commit
40b987e7f5
78
mqtt.go
Normal file
78
mqtt.go
Normal file
@ -0,0 +1,78 @@
|
||||
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},
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user