示例#1
0
文件: main.go 项目: RunCross/moonmq
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))
}
示例#2
0
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))
	}
}
示例#3
0
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))
	}
}
示例#4
0
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)
		}
	}
}