func main() { flag.Parse() cfg := client.NewDefaultConfig() cfg.BrokerAddr = *addr c, err := client.NewClientWithConfig(cfg) if err != nil { panic(err) } defer c.Close() var conn *client.Conn conn, err = c.Get() if err != nil { panic(err) } defer conn.Close() var ch *client.Channel ch, err = conn.Bind(*queue, "", true) msg := ch.GetMsg() println("get msg: ", string(msg)) }
func TestUnbind(t *testing.T) { c := getClientConn() defer c.Close() var ch *client.Channel var err error if ch, err = c.Bind("test_queue", "c", true); err != nil { t.Fatal(err) } if err := ch.Close(); err != nil { t.Fatal(err) } if err := testPublish("test_queue", "c", []byte("123"), "direct"); err != nil { t.Fatal(err) } if msg := ch.WaitMsg(1 * time.Second); msg != nil { t.Fatal(string(msg)) } if ch, err = c.Bind("test_queue", "c", true); err != nil { t.Fatal(err) } if msg := ch.GetMsg(); string(msg) != "123" { t.Fatal(string(msg)) } }
func TestPubFanout(t *testing.T) { c1 := getClientConn() c2 := getClientConn() defer c1.Close() defer c2.Close() var ch1 *client.Channel var ch2 *client.Channel var err error if ch1, err = c1.Bind("test_queue", "b", true); err != nil { t.Fatal(err) } if ch2, err = c2.Bind("test_queue", "b", true); err != nil { t.Fatal(err) } if err := testPublish("test_queue", "b", []byte("hello world"), "fanout"); err != nil { t.Fatal(err) } if msg := ch1.GetMsg(); string(msg) != "hello world" { t.Fatal(string(msg)) } if msg := ch2.GetMsg(); string(msg) != "hello world" { t.Fatal(string(msg)) } }
func TestAck(t *testing.T) { c := getClientConn() defer c.Close() var ch *client.Channel var err error if ch, err = c.Bind("test_queue", "d", false); err != nil { t.Fatal(err) } if err := testPublish("test_queue", "d", []byte("123"), "direct"); err != nil { t.Fatal(err) } if msg := ch.GetMsg(); string(msg) != "123" { t.Fatal(string(msg)) } else { if err := ch.Ack(); err != nil { t.Fatal(err) } } }