#tibco #message-queue #text #destination #ems

tibco_ems

Tibco EMS 的高级API

69个发布版本

0.5.1 2023年1月27日
0.4.16 2022年10月6日
0.4.12 2022年7月5日
0.4.7 2022年3月22日
0.1.14 2020年11月30日

#4 in #destination

Download history 61/week @ 2024-03-14 173/week @ 2024-03-21 149/week @ 2024-03-28 69/week @ 2024-04-04 325/week @ 2024-04-11 80/week @ 2024-04-18 171/week @ 2024-04-25 195/week @ 2024-05-02 81/week @ 2024-05-09 47/week @ 2024-05-16 286/week @ 2024-05-23 180/week @ 2024-05-30 40/week @ 2024-06-06 1/week @ 2024-06-13 174/week @ 2024-06-20 200/week @ 2024-06-27

每月504次下载

Apache-2.0

135KB
2.5K SLoC

tibco_ems

Latest Version

Tibco EMS C库的高级API

构建

要构建此crate,TIBCO EMS C库必须在LD_LIBRARY_PATH中,或者可以设置EMS_HOME环境变量。

升级时请查看变更日志

示例

向队列发送文本消息。

use tibco_ems::Destination;
use tibco_ems::TextMessage;

fn main() {
  let url = "tcp://127.0.0.1:7222";
  let user="admin";
  let password="admin";

  let connection = tibco_ems::connect(url,user,password).unwrap();
  let session = connection.session().unwrap();

  let msg = TextMessage{
    body:"hallo welt".to_string(),
    ..Default::default()
  };

  let destination = Destination::Queue("myqueue".to_string());
  
  let _ignore = session.send_message(&destination, msg);
}

从队列接收文本消息。

use tibco_ems::Destination;
use tibco_ems::Message;

fn main() {
  let url = "tcp://127.0.0.1:7222";
  let user="admin";
  let password="admin";

  let connection = tibco_ems::connect(url,user,password).unwrap();
  let session = connection.session().unwrap();

  let destination = Destination::Queue("myqueue".to_string());
  let consumer = session.queue_consumer(&destination, None).unwrap();
  
  println!("waiting 10 seconds for a message");
  let msg_result = consumer.receive_message(Some(10000));

  match msg_result {
    Ok(result_value) => {
      match result_value {
        Some(message) => {
          match &message {
            Message::TextMessage(text_message) =>{
              println!("received text message");
              println!("content: {}", text_message.body);
            },
            _ => {
              println!("unknown type");
            }
          }    
        },
        None =>{
          println!("no message returned");
        },
      }
    },
    Err(status) => {
      println!("returned status: {:?}",status);
    }
  }
}

更多示例可以在示例目录中找到。

许可证

tibco_ems 采用Apache License,版本2.0 (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)。

TIBCO企业消息服务及其所有相关组件均为TIBCO软件的财产,且不包含在此软件包中。有关详细信息,请参阅您自己的TIBCO许可条款。

依赖项

~0.5–1.7MB
~35K SLoC