Skip to content

Commit 7c84083

Browse files
committed
统一到warp框架
1 parent 4e7e61d commit 7c84083

File tree

11 files changed

+771
-1525
lines changed

11 files changed

+771
-1525
lines changed

Cargo.lock

Lines changed: 411 additions & 1147 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

README.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,24 @@
88

99
`cargo build --release --workspace --exclude dsweb-front`
1010

11-
然后切换到dsweb-front,编译前端工程,参照里面的README
11+
这里会编译出可执行文件:
12+
`./target/release/dsweb-core`
13+
14+
然后切换到dsweb-front,编译前端工程,参照里面的README,然后将打包后的产物跟index.html放在当前public目录下,运行dsweb-core即可
15+
16+
产物结构如下
17+
```
18+
│ dsweb-core.exe
19+
|
20+
├─files
21+
└─public
22+
29ff266c59292a226eee.wasm
23+
dsweb.js
24+
index.html
25+
```
26+
27+
其中files文件夹是上传下载的中转文件夹,
28+
访问地址(如果是本地):http://127.0.0.1:41290
1229

1330
## 第三方库依赖安装参考(主要是linux)
1431

dsweb-core/Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@ edition = "2021"
77

88
[dependencies]
99
dscom = {path = "../dscom"}
10-
websocket = "0.26.5"
10+
tokio = { version = "1", features = ["full"] }
11+
futures-util = "0.3"
12+
tokio-stream = "0.1"
13+
warp = { version = "0.3", features = ["multipart", "websocket"]}
14+
1115
scrap = "0.5"
1216
enigo = "0.1.2"
1317
flate2 = "1.0"
1418
clipboard = "0.5"
15-
tiny_http = "0.11"
16-
ascii = "1.0"
17-
percent-encoding = "2.3.0"
18-
multipart = {version = "0.18", features = ["server", "tiny_http"]}

dsweb-core/src/ctrl_event.rs

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
use enigo::{Enigo, KeyboardControllable, MouseControllable};
2+
use futures_util::StreamExt;
3+
use tokio_stream::wrappers::UnboundedReceiverStream;
4+
use warp::ws::Message;
5+
6+
use crate::key_mouse;
7+
8+
9+
pub async fn ctrl(mut rx: UnboundedReceiverStream<Message>) {
10+
let mut enigo = Enigo::new();
11+
while let Some(message) = rx.next().await {
12+
if message.is_close() {
13+
return;
14+
}
15+
if message.is_binary() {
16+
let cmd = message.into_bytes();
17+
match cmd[0] {
18+
dscom::KEY_UP => {
19+
if let Some(key) = key_mouse::key_to_enigo(cmd[1]) {
20+
enigo.key_up(key);
21+
}
22+
}
23+
dscom::KEY_DOWN => {
24+
if let Some(key) = key_mouse::key_to_enigo(cmd[1]) {
25+
enigo.key_down(key);
26+
}
27+
}
28+
dscom::MOUSE_KEY_UP => {
29+
if let Some(key) = key_mouse::mouse_to_engin(cmd[1]) {
30+
enigo.mouse_up(key);
31+
}
32+
}
33+
dscom::MOUSE_KEY_DOWN => {
34+
if let Some(key) = key_mouse::mouse_to_engin(cmd[1]) {
35+
enigo.mouse_down(key);
36+
}
37+
}
38+
dscom::MOUSE_WHEEL_UP => {
39+
enigo.mouse_scroll_y(-2);
40+
}
41+
dscom::MOUSE_WHEEL_DOWN => {
42+
enigo.mouse_scroll_y(2);
43+
}
44+
dscom::MOVE => {
45+
let x = ((cmd[1] as i32) << 8) | (cmd[2] as i32);
46+
let y = ((cmd[3] as i32) << 8) | (cmd[4] as i32);
47+
enigo.mouse_move_to(x, y);
48+
}
49+
_ => {
50+
return;
51+
}
52+
}
53+
}
54+
}
55+
}

dsweb-core/src/http_server.rs

Lines changed: 0 additions & 96 deletions
This file was deleted.

0 commit comments

Comments
 (0)