| /******************************************************************************* |
| * 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) |
| } |