[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