11 个版本 (7 个重大更改)
0.12.0 | 2024 年 8 月 7 日 |
---|---|
0.11.0 | 2024 年 6 月 13 日 |
0.10.0 | 2024 年 2 月 24 日 |
0.9.0 | 2023 年 12 月 11 日 |
0.1.2 | 2022 年 7 月 30 日 |
#80 在 WebSocket
每月 1,721 次下载
在 2 软件包 中使用
39KB
648 行
fe2o3-amqp-ws
AMQP 1.0 WebSocket 绑定的适配器
这提供了一个对 tokio_tungstenite::WebSocketStream
的薄包装,包装器通过将 "Sec-WebSocket-Protocol" HTTP 标头设置为 "amqp" 来执行 WebSocket 握手。
包装类型 WebSocketStream
也可以用于非 AMQP 应用程序;然而,用户应使用原始 tokio_tungstenite
API 建立WebSocket流,然后通过 fe2o3_amqp_ws::WebSocketStream::from(ws_stream)
包装流。
功能标志
default = []
功能 | 描述 |
---|---|
native-tls |
启用 "tokio-tungstenite/native-tls" |
native-tls-vendored |
启用 "tokio-tungstenite/native-tls-vendored" |
rustls-tls-native-roots |
启用 "tokio-tungstenite/rustls-tls-native-roots" |
rustls-tls-webpki-roots |
启用 "tokio-tungstenite/rustls-tls-webpki-roots" |
示例
use fe2o3_amqp::{
types::{messaging::Outcome, primitives::Value},
Connection, Delivery, Receiver, Sender, Session,
};
use fe2o3_amqp_ws::WebSocketStream;
#[tokio::main]
async fn main() {
let ws_stream = WebSocketStream::connect("ws://127.0.0.1:5673")
.await
.unwrap();
let mut connection = Connection::builder()
.container_id("connection-1")
.open_with_stream(ws_stream)
.await
.unwrap();
let mut session = Session::begin(&mut connection).await.unwrap();
let mut sender = Sender::attach(&mut session, "rust-sender-link-1", "q1")
.await
.unwrap();
let mut receiver = Receiver::attach(&mut session, "rust-recver-1", "q1")
.await
.unwrap();
let fut = sender.send_batchable("hello batchable AMQP").await.unwrap();
let delivery: Delivery<Value> = receiver.recv().await.unwrap();
receiver.accept(&delivery).await.unwrap();
let outcome: Outcome = fut.await.unwrap();
outcome.accepted_or_else(|state| state).unwrap(); // Handle delivery outcome
sender.close().await.unwrap();
receiver.close().await.unwrap();
session.end().await.unwrap();
connection.close().await.unwrap();
}
WebAssembly 支持
自 "0.3.0" 以来已添加对 wasm32-unknown-unknown
目标的实验性支持,并使用内部 web_sys::WebSocket
。此示例可在外部 examples/wasm32-in-browser 中找到。
许可: MIT/Apache-2.0
依赖项
~2–15MB
~209K SLoC