func ExampleConn_Subscribe_1() error { conn, err := stomp.Dial("tcp", "localhost:61613") if err != nil { return err } sub, err := conn.Subscribe("/queue/test-2", stomp.AckClient) if err != nil { return err } // receive 5 messages and then quit for i := 0; i < 5; i++ { msg := <-sub.C if msg.Err != nil { return msg.Err } doSomethingWith(msg) // acknowledge the message err = conn.Ack(msg) if err != nil { return err } } err = sub.Unsubscribe() if err != nil { return err } return conn.Disconnect() }
func recvMessages(subscribed chan bool) { defer func() { stop <- true }() conn, err := stomp.Dial("tcp", *serverAddr, options...) if err != nil { println("cannot connect to server", err.Error()) return } sub, err := conn.Subscribe(*queueName, stomp.AckAuto) if err != nil { println("cannot subscribe to", *queueName, err.Error()) return } close(subscribed) for i := 1; i <= *messageCount; i++ { msg := <-sub.C expectedText := fmt.Sprintf("Message #%d", i) actualText := string(msg.Body) if expectedText != actualText { println("Expected:", expectedText) println("Actual:", actualText) } } println("receiver finished") }
// Connect to a STOMP server using default options. func ExampleDial_1() error { conn, err := stomp.Dial("tcp", "192.168.1.1:61613") if err != nil { return err } err = conn.Send( "/queue/test-1", // destination "text/plain", // content-type []byte("Test message #1")) // body if err != nil { return err } return conn.Disconnect() }
func ExampleTransaction() error { conn, err := stomp.Dial("tcp", "localhost:61613") if err != nil { return err } defer conn.Disconnect() sub, err := conn.Subscribe("/queue/test-2", stomp.AckClient) if err != nil { return err } // receive 5 messages and then quit for i := 0; i < 5; i++ { msg := <-sub.C if msg.Err != nil { return msg.Err } tx := conn.Begin() doAnotherThingWith(msg, tx) tx.Send("/queue/another-one", "text/plain", []byte(fmt.Sprintf("Message #%d", i)), nil) // acknowledge the message err = tx.Ack(msg) if err != nil { return err } err = tx.Commit() if err != nil { return err } } err = sub.Unsubscribe() if err != nil { return err } return nil }
// Connect to a STOMP server that requires authentication. In addition, // we are only prepared to use STOMP protocol version 1.1 or 1.2, and // the virtual host is named "dragon". In this example the STOMP // server also accepts a non-standard header called 'nonce'. func ExampleDial_2() error { conn, err := stomp.Dial("tcp", "192.168.1.1:61613", stomp.ConnOpt.Login("scott", "leopard"), stomp.ConnOpt.AcceptVersion(stomp.V11), stomp.ConnOpt.AcceptVersion(stomp.V12), stomp.ConnOpt.Host("dragon"), stomp.ConnOpt.Header("nonce", "B256B26D320A")) if err != nil { return err } err = conn.Send( "/queue/test-1", // destination "text/plain", // content-type []byte("Test message #1")) // body if err != nil { return err } return conn.Disconnect() }
func sendMessages() { defer func() { stop <- true }() conn, err := stomp.Dial("tcp", *serverAddr, options...) if err != nil { println("cannot connect to server", err.Error()) return } for i := 1; i <= *messageCount; i++ { text := fmt.Sprintf("Message #%d", i) err = conn.Send(*queueName, "text/plain", []byte(text), nil) if err != nil { println("failed to send to server", err) return } } println("sender finished") }