~/Projects/mqtt-go
git clone https://code.lsong.org/mqtt-go
Commit
- Commit
- d14d944de9d028e6ffe84fd6dfb620c950b88dae
- Author
- mochi <[email protected]>
- Date
- 2022-01-05 20:38:32 +0000 +0000
- Diffstat
examples/events/main.go | 21 ++++++++++++++++++++-
Update events example with publish hooks
diff --git a/examples/events/main.go b/examples/events/main.go index f1239bfc602939d869bb3f17a1023bf07fbf7483..52057ddc26bd1c55bf4f1ed069bc598d46672917 100644 --- a/examples/events/main.go +++ b/examples/events/main.go @@ -11,6 +11,7 @@ "github.com/logrusorgru/aurora" mqtt "github.com/mochi-co/mqtt/server" + "github.com/mochi-co/mqtt/server/events" "github.com/mochi-co/mqtt/server/listeners" "github.com/mochi-co/mqtt/server/listeners/auth" ) @@ -43,11 +44,29 @@ log.Fatal(err) } }() + // Add OnMessage Event Hook + server.Events.OnMessage = func(cl events.Client, pk events.Packet) { + fmt.Printf("< OnMessage received message from client %s: %s\n", cl.ID, string(pk.Payload)) + } + + // Add OnMessage Event Hook + server.Events.OnMessageModify = func(cl events.Client, pk events.Packet) (pkx events.Packet, err error) { + pkx = pk + if string(pk.Payload) == "hello" { + pkx.Payload = []byte("hello world") + fmt.Printf("< OnMessageModify modified message from client %s: %s\n", cl.ID, string(pkx.Payload)) + } else { + fmt.Printf("< OnMessageModify received message from client %s: %s\n", cl.ID, string(pkx.Payload)) + } + + return pkx, nil + } + // Demonstration of directly publishing messages to a topic via the // `server.Publish` method. Subscribe to `direct/publish` using your // MQTT client to see the messages. go func() { - for range time.Tick(time.Second * 5) { + for range time.Tick(time.Second * 10) { server.Publish("direct/publish", []byte("hello world"), false) fmt.Println("> issued direct message to direct/publish") }