Remove dependency on rand
This commit is contained in:
parent
643da74bcc
commit
cab82cf775
2 changed files with 7 additions and 8 deletions
|
|
@ -5,7 +5,6 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
futures = "0.3.23"
|
futures = "0.3.23"
|
||||||
rand = "0.8.5"
|
|
||||||
serde = { version = "1.0.143", features = ["derive"] }
|
serde = { version = "1.0.143", features = ["derive"] }
|
||||||
serde_json = "1.0.83"
|
serde_json = "1.0.83"
|
||||||
thiserror = "1.0.32"
|
thiserror = "1.0.32"
|
||||||
|
|
|
||||||
14
src/conn.rs
14
src/conn.rs
|
|
@ -11,7 +11,6 @@ use std::time::Duration;
|
||||||
use futures::channel::oneshot;
|
use futures::channel::oneshot;
|
||||||
use futures::stream::{SplitSink, SplitStream};
|
use futures::stream::{SplitSink, SplitStream};
|
||||||
use futures::{SinkExt, StreamExt};
|
use futures::{SinkExt, StreamExt};
|
||||||
use rand::Rng;
|
|
||||||
use tokio::net::TcpStream;
|
use tokio::net::TcpStream;
|
||||||
use tokio::sync::mpsc;
|
use tokio::sync::mpsc;
|
||||||
use tokio::{select, task, time};
|
use tokio::{select, task, time};
|
||||||
|
|
@ -171,7 +170,7 @@ struct State {
|
||||||
|
|
||||||
packet_tx: mpsc::UnboundedSender<Data>,
|
packet_tx: mpsc::UnboundedSender<Data>,
|
||||||
|
|
||||||
last_ws_ping: Option<Vec<u8>>,
|
last_ws_ping: Option<u64>,
|
||||||
last_ws_pong: Option<Vec<u8>>,
|
last_ws_pong: Option<Vec<u8>>,
|
||||||
last_euph_ping: Option<Time>,
|
last_euph_ping: Option<Time>,
|
||||||
last_euph_pong: Option<Time>,
|
last_euph_pong: Option<Time>,
|
||||||
|
|
@ -353,16 +352,17 @@ impl State {
|
||||||
|
|
||||||
async fn do_pings(&mut self, event_tx: &mpsc::UnboundedSender<Event>) -> InternalResult<()> {
|
async fn do_pings(&mut self, event_tx: &mpsc::UnboundedSender<Event>) -> InternalResult<()> {
|
||||||
// Check old ws ping
|
// Check old ws ping
|
||||||
if self.last_ws_ping.is_some() && self.last_ws_ping != self.last_ws_pong {
|
let last_ws_ping_bytes = self.last_ws_ping.map(|n| n.to_be_bytes().to_vec());
|
||||||
|
if self.last_ws_ping.is_some() && last_ws_ping_bytes != self.last_ws_pong {
|
||||||
return Err("server missed ws ping".into());
|
return Err("server missed ws ping".into());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Send new ws ping
|
// Send new ws ping
|
||||||
let mut ws_payload = [0_u8; 8];
|
let ws_ping = self.last_ws_ping.unwrap_or_default().wrapping_add(1);
|
||||||
rand::thread_rng().fill(&mut ws_payload);
|
let ws_ping_bytes = ws_ping.to_be_bytes().to_vec();
|
||||||
self.last_ws_ping = Some(ws_payload.to_vec());
|
self.last_ws_ping = Some(ws_ping);
|
||||||
self.ws_tx
|
self.ws_tx
|
||||||
.send(tungstenite::Message::Ping(ws_payload.to_vec()))
|
.send(tungstenite::Message::Ping(ws_ping_bytes))
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
// Check old euph ping
|
// Check old euph ping
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue