#tokio #streaming #stomp

tokio-stomp-2

异步流STOMP客户端的非官方继任者

8个不稳定版本 (3个重大更改)

0.3.0 2023年6月28日
0.2.0 2023年6月28日
0.1.1 2021年4月9日
0.0.4 2021年4月7日

#638 in 异步

MIT 许可证

33KB
761

便利版本

  • 谨慎使用
  • 如果你不知道自己在做什么,请使用原始的tokio-stomp
  • 添加发送和接收头

tokio-stomp-2

crates.io

使用Tokio堆栈的异步STOMP客户端(可能最终还包括服务器)

它旨在快速且功能齐全,具有简单的流式接口。

示例

向队列发送消息。

use futures::prelude::*;
use tokio_stomp_2::client;
use tokio_stomp_2::ToServer;

#[tokio::main]
async fn main() -> Result<(), std::io::Error> {
  let mut conn = client::connect("127.0.0.1:61613", None, None).await.unwrap();
  
  conn.send(
    ToServer::Send {
        destination: "queue.test".into(),
        transaction: None,
        headers: vec!(),
        body: Some(b"Hello there rustaceans!".to_vec()),
    }
    .into(),
  )
  .await.expect("sending message to server");
  Ok(())
}

从队列接收消息。

use futures::prelude::*;
use tokio_stomp_2::client;
use tokio_stomp_2::FromServer;

#[tokio::main]
async fn main() -> Result<(), std::io::Error> {
  let mut conn = client::connect("127.0.0.1:61613", None, None).await.unwrap();
  conn.send(client::subscribe("queue.test", "custom-subscriber-id")).await.unwrap();

  while let Some(item) = conn.next().await {
    if let FromServer::Message { message_id,body, .. } = item.unwrap().content {
      println!("{:?}", body);
      println!("{}", message_id);
    }
  }
  Ok(())
}

完整示例请参阅示例目录。

许可证: MIT

依赖项

~6–18MB
~187K SLoC