末法时代,学魔法不如学科技吗?要不...还是攻略别的吧?
我:
(╯°Д°)╯ ┻━┻转生魔法少女就拿出真本事,却在科技世界无法升级!公主:
\(≧▽≦)/正好,可以出下一部,嗯,就叫【魔法转生~在末法时代的悠闲生活~】我:欸?!我希望是【魔法無能,被踢出公主队伍却契约最强精灵少女】
(,,>᎑<,,)公主:
( ⁰▿⁰)退队流已经不行了,不信你可以试一试!哼!
本项目是一个 Chrome/Edge/Firefox 浏览器插件,用于 JS RPC。
- 不会在网页中发起 Web Socket 请求,由浏览器插件建立与管理 Web Socket 连接,且多个标签页只建立一个 Web Socket 连接
- 插件提供相关 API 和配置页面,方便注入与管理 RPC 方法
- 插件负责与 RPC Server 通信,并调用注册到网页中的 RPC 方法,将结果返回。性能上会有一定的损耗,因为中间多了浏览器插件来转发信息
- 可以在调试断点处注入和调用 RPC 方法 —— 因为使用了 Chrome DevTools Protocol,所以该功能在 Firefox 浏览器不可用
- 可以根据注入的 RPC 方法,生成调用代码(比如 Python)
-
rpc-server/目录提供了服务器的实现
整个通信流程如下图所示:
sequenceDiagram
Client->>Rpc Server: 1. 发起 RPC 请求
Rpc Server->>Web Extension: 2. 转发请求
Web Extension->>Web Page: 3. 调用注册的 RPC 方法
Web Page-->>Client: 4. 返回结果
魔法少女正在努力休息中. . .♡~(>᎑<๑),具体见 cure-magic-shadow-wiki
git clone https://github.com/Hosinoharu/cure-magic-shadow.git
cd cure-magic-shadow
npm install
# 构建浏览器插件
npm run build
# 构建 rpc server
cd rpc-server
cargo build --release