blob: 8d1b9c80e9ec4d6a5ce7409cc127fd64a7ffd9f0 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014-2015 IBM Corp.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Allan Stockdill-Mander - initial API and implementation
*******************************************************************************/
package main
import (
"fmt"
"git.eclipse.org/gitroot/paho.incubator/smidge.git/client"
"git.eclipse.org/gitroot/paho.incubator/smidge.git/packets"
"log"
"os"
"time"
)
func main() {
smidge.DEBUG = log.New(os.Stdout, "", 0)
c, err := smidge.NewClient("udp://127.0.0.1:1884", "gotestclient")
if err != nil {
panic(err)
}
c.SetWill("testwill", 1, true, []byte("Will test"))
ct := c.Connect()
ct.Wait()
fmt.Println(ct.ReturnCode)
rt := c.Register("gotest")
rt.WaitTimeout(10 * time.Second)
fmt.Println(rt.TopicName, rt.TopicId, rt.ReturnCode)
st := c.Subscribe("gotest", 0, func(c *smidge.SNClient, m *packets.PublishMessage) {
fmt.Println(string(m.Data))
})
st.WaitTimeout(10 * time.Second)
fmt.Println(st.TopicName, st.Qos, st.TopicId, st.ReturnCode)
pt := c.Publish("gotest", 1, false, []byte("Hello smidge"))
pt.WaitTimeout(10 * time.Second)
fmt.Println(pt.TopicId, pt.ReturnCode)
time.Sleep(3 * time.Second)
}