123456789101112131415161718192021222324252627282930313233343536373839 |
- package mqtt
- import (
- "net"
- "time"
- )
- // Broker a mqtt broker
- type Broker struct {
- mgr *Manager
- }
- // NewBroker create new broker
- func NewBroker(p Provider) *Broker {
- // manager
- mgr := NewManager(p)
- handler := &Broker{mgr: mgr}
- return handler
- }
- // Handle tcp conn handle
- func (b *Broker) Handle(conn net.Conn) {
- b.mgr.NewConn(conn)
- }
- // SendMessageToDevice send message to device
- func (b *Broker) SendMessageToDevice(deviceid string, msgtype string, message []byte, timeout time.Duration) error {
- msg := &Publish{}
- msg.Header.QosLevel = QosAtLeastOnce
- msg.TopicName = msgtype
- msg.Payload = BytesPayload(message)
- return b.mgr.PublishMessage2Device(deviceid, msg, timeout)
- }
- // GetToken get device token with device id
- func (b *Broker) GetToken(deviceid string) ([]byte, error) {
- return b.mgr.GetToken(deviceid)
- }
|