use std::time::Duration;
use tokio::net::TcpListener;
use tonic::transport::Server;
use tonic::transport::server::TcpIncoming;
const HTTP2_KEEPALIVE_INTERVAL: Duration = Duration::from_secs(60);
const HTTP2_KEEPALIVE_TIMEOUT: Duration = Duration::from_secs(20);
const TCP_KEEPALIVE_IDLE: Duration = Duration::from_secs(60);
const TCP_KEEPALIVE_INTERVAL: Duration = Duration::from_secs(10);
const TCP_KEEPALIVE_RETRIES: u32 = 3;
pub fn server_builder() -> Server {
Server::builder()
.http2_keepalive_interval(Some(HTTP2_KEEPALIVE_INTERVAL))
.http2_keepalive_timeout(Some(HTTP2_KEEPALIVE_TIMEOUT))
}
pub fn tcp_incoming(listener: TcpListener) -> TcpIncoming {
TcpIncoming::from(listener)
.with_keepalive(Some(TCP_KEEPALIVE_IDLE))
.with_keepalive_interval(Some(TCP_KEEPALIVE_INTERVAL))
.with_keepalive_retries(Some(TCP_KEEPALIVE_RETRIES))
}