3个版本 (破坏性更新)
0.3.0 | 2022年2月14日 |
---|---|
0.2.0 | 2022年2月14日 |
0.1.0 | 2022年2月14日 |
#32 in #listener
9KB
123 行
nestjs-nats-connector
一个简单的crate,通过nats与nestjs交互
用法
use std::error::Error;
use async_nats::{Connection, Message};
use nestjs_nats_connector::listener;
use nestjs_nats_connector::listener::IncomingRequest;
use serde::{Deserialize, Serialize};
use async_trait::async_trait;
#[derive(Serialize, Deserialize)]
pub struct Pattern {
cmd: String
}
pub struct Handler {
}
#[async_trait]
impl listener::Listener for Handler {
type Pattern = Pattern;
type RequestData = u32;
async fn handler(
&self,
connection: &Connection,
message: &Message,
data: IncomingRequest<Self::Pattern, Self::RequestData>
) {
println!("{}", data.id)
}
fn get_pattern(&self) -> Self::Pattern {
Pattern {
cmd: "dashboard.graph".to_string()
}
}
}
impl Handler {
pub fn new() -> Handler {
Handler { }
}
}
async fn test(){
let connection = async_nats::connect("localhost:4222")
.await
.expect("cant connect to nats server");
nestjs_nats_connector::listener::listen(
&connection,
vec![
Handler::new()
]
).await;
}
依赖项
~17–29MB
~526K SLoC