feat: add websocket implementation

This commit is contained in:
trafficlunar 2024-11-29 15:16:58 +00:00
parent f2145c34b2
commit 8950e16e70
4 changed files with 322 additions and 1 deletions

View file

@ -1,9 +1,12 @@
use std::error::Error;
mod websocket;
fn main() -> Result<(), Box<dyn Error>> {
dotenvy::dotenv()?;
println!("Hello, world!");
let mut socket = websocket::connect().unwrap();
websocket::send(&mut socket, 1, 1);
Ok(())
}

24
src/websocket.rs Normal file
View file

@ -0,0 +1,24 @@
use std::{env, net::TcpStream};
use tungstenite::{stream::MaybeTlsStream, Message, WebSocket};
pub fn connect() -> Result<WebSocket<MaybeTlsStream<TcpStream>>, tungstenite::Error> {
let (socket, _) = match tungstenite::connect(env::var("WEBSOCKET_URL").unwrap()) {
Ok(ws) => ws,
Err(err) => {
eprintln!("Unable to connect to WebSocket");
return Err(err);
}
};
println!("Connected to WebSocket");
Ok(socket)
}
pub fn send(socket: &mut WebSocket<MaybeTlsStream<TcpStream>>, cpu: u8, ram: u8) {
let message = format!("{{ \"cpu\": {}, \"ram\": {} }}", cpu, ram);
socket
.send(Message::Text(message))
.unwrap();
}