1
This commit is contained in:
parent
58b4b8e909
commit
e22a18c364
@ -5,7 +5,7 @@ use std::time::Duration;
|
||||
use tokio::runtime::Runtime;
|
||||
use actix_web::{dev::ServerHandle, middleware, rt, web, HttpRequest, HttpServer};
|
||||
use actix_web::App as WebApp;
|
||||
use std::{sync::mpsc, thread, time};
|
||||
use std::{sync::mpsc, thread};
|
||||
|
||||
use r9_macro::SharedFromSelf;
|
||||
use r9_macro_derive::SharedFromSelf;
|
||||
@ -15,6 +15,7 @@ pub trait UserApp {
|
||||
fn init(&mut self);
|
||||
fn update(&mut self);
|
||||
fn uninit(&mut self);
|
||||
fn get_http_listen_port(&self) -> i32;
|
||||
}
|
||||
|
||||
#[derive(SharedFromSelf)]
|
||||
@ -27,17 +28,12 @@ pub struct App {
|
||||
user_app: Option<Rc::<RefCell::<dyn UserApp>>>,
|
||||
}
|
||||
|
||||
async fn index(req: HttpRequest) -> &'static str {
|
||||
"Hello world!asaaa"
|
||||
}
|
||||
|
||||
async fn run_app(tx: mpsc::Sender<ServerHandle>) -> std::io::Result<()> {
|
||||
async fn run_app(port: u16, tx: mpsc::Sender<ServerHandle>) -> std::io::Result<()> {
|
||||
let server = HttpServer::new(|| {
|
||||
WebApp::new()
|
||||
.service(web::resource("/index.html").to(|| async { "Hello world!" }))
|
||||
.service(web::resource("/").to(index))
|
||||
})
|
||||
.bind(("127.0.0.1", 8080))?
|
||||
.bind(("0.0.0.0", port))?
|
||||
.workers(2)
|
||||
.run();
|
||||
|
||||
@ -133,8 +129,9 @@ impl App {
|
||||
fn init_http_server(&mut self) {
|
||||
let (tx, _) = mpsc::channel();
|
||||
|
||||
let port = self.user_app.as_ref().unwrap().borrow().get_http_listen_port() as u16;
|
||||
thread::spawn(move || {
|
||||
let server_future = run_app(tx);
|
||||
let server_future = run_app(port, tx);
|
||||
rt::System::new().block_on(server_future)
|
||||
});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user