Feat: Added IP_ADDR args to easily set IP address
- Fixed documentation
This commit is contained in:
parent
756e934e93
commit
aea63234a1
@ -10,7 +10,12 @@ A wannabe discord clone but currently only support websocket real time chatting
|
|||||||
- Run `cargo build` at project root to build the binary.
|
- Run `cargo build` at project root to build the binary.
|
||||||
|
|
||||||
## Running
|
## Running
|
||||||
- Run the server with `cargo run` or `RUST_LOG=info cargo run` to run with debug.
|
### Development
|
||||||
|
- Run the server with `cargo run` or `RUST_LOG=debug cargo run` to run with debug.
|
||||||
|
### Production
|
||||||
|
- Run the binary with `minh_cord {LOCAL_IP_ADDRESS}`.
|
||||||
|
|
||||||
## Connecting to the server
|
## Connecting to the server
|
||||||
- If server is running on localhost, run `telnet 127.0.0.1 8080` to connect to the server.
|
- Get your local IP address of the machine you're running the server on: i.e `192.168.0.100`
|
||||||
|
- Run the server with the above commands.
|
||||||
|
- Run `telnet 192.168.0.100` from a client to connect to the server.
|
||||||
|
19
src/main.rs
19
src/main.rs
@ -4,17 +4,22 @@ use tokio::{
|
|||||||
net::TcpListener,
|
net::TcpListener,
|
||||||
sync::broadcast,
|
sync::broadcast,
|
||||||
};
|
};
|
||||||
use log::info;
|
use log::debug;
|
||||||
|
use std::env;
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() -> Result<(), Report> {
|
async fn main() -> Result<(), Report> {
|
||||||
|
let args: Vec<String> = env::args().collect();
|
||||||
|
|
||||||
env_logger::init();
|
env_logger::init();
|
||||||
// Setup the Environment
|
// Setup the Environment
|
||||||
setup()?;
|
setup()?;
|
||||||
|
|
||||||
// Set up a TCP listener to listen for incoming tcp requests
|
let ip_address = &args[1];
|
||||||
let listener = TcpListener::bind("127.0.0.1:8080").await.unwrap();
|
|
||||||
info!("Bounded to localhost port 8080");
|
// Set up a TCP listener to listen for incoming tcp requests at the ip address that is passed from the command line
|
||||||
|
let listener = TcpListener::bind(format!("{ip_address}:8080")).await.unwrap();
|
||||||
|
debug!("{}", format!("Bounded to {ip_address} port 8080"));
|
||||||
|
|
||||||
// Setting up broadcast channel: A channel that will accept messages and broadcast them to everyone connected to the TCP server
|
// Setting up broadcast channel: A channel that will accept messages and broadcast them to everyone connected to the TCP server
|
||||||
// the channel accepts an i32 that is the maximum number of messages the channel can retain at any given time
|
// the channel accepts an i32 that is the maximum number of messages the channel can retain at any given time
|
||||||
@ -28,7 +33,7 @@ async fn main() -> Result<(), Report> {
|
|||||||
|
|
||||||
// accept the requests
|
// accept the requests
|
||||||
let (mut socket, addr) = listener.accept().await.unwrap();
|
let (mut socket, addr) = listener.accept().await.unwrap();
|
||||||
info!("Accepted a websocket request from {}", addr);
|
debug!("Accepted a websocket request from {}", addr);
|
||||||
|
|
||||||
tokio::spawn(async move {
|
tokio::spawn(async move {
|
||||||
// Splitting the TCP socket into read/write halves
|
// Splitting the TCP socket into read/write halves
|
||||||
@ -69,11 +74,11 @@ async fn main() -> Result<(), Report> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn setup() -> Result<(), Report> {
|
fn setup() -> Result<(), Report> {
|
||||||
info!("Changing some environment variables!");
|
debug!("Changing some environment variables!");
|
||||||
|
|
||||||
if std::env::var("RUST_LIB_BACKTRACE").is_err() {
|
if std::env::var("RUST_LIB_BACKTRACE").is_err() {
|
||||||
std::env::set_var("RUST_LIB_BACKTRACE", "1");
|
std::env::set_var("RUST_LIB_BACKTRACE", "1");
|
||||||
info!("RUST_LIB_BACKTRACE is set. There will be pretty error messages !")
|
debug!("RUST_LIB_BACKTRACE is set. There will be pretty error messages !")
|
||||||
}
|
}
|
||||||
color_eyre::install()?;
|
color_eyre::install()?;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user