Files
server/test-plugin/src/lib.rs
T
2025-10-12 13:06:06 +02:00

50 lines
1.5 KiB
Rust

use std::sync::Arc;
use voxa_server::{Server, export_plugin, logger, utils::plugin::Plugin};
logger! {
const LOGGER "My Plugin"
}
#[derive(Default)]
pub struct MyPlugin;
impl Plugin for MyPlugin {
fn init(&mut self, _server: &Arc<Server>) {
LOGGER.info("MyPlugin initialized!");
}
fn on_request(
&mut self,
msg: &voxa_server::types::message::WsMessage<voxa_server::types::message::ClientMessage>,
client: &voxa_server::utils::client::Client,
_server: &Arc<Server>,
) -> bool {
LOGGER.info(&format!("Received message: {:?}", msg));
match msg {
voxa_server::types::message::WsMessage::Message(
voxa_server::types::message::ClientMessage::SendMessage { contents, .. },
) => {
if contents == "ping" {
LOGGER.info("Pong!");
// client
// .send(voxa_server::types::message::ServerMessage::TempMessage {
// message: "pong".to_string(),
// })
// .unwrap();
client
.send(voxa_server::types::message::ServerMessage::TempMessage {
message: "pong".to_string(),
})
.unwrap();
true
} else {
false
}
}
_ => false,
}
}
}
export_plugin!(Box::new(MyPlugin));