Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/imzlh/webrpc
Perfect RPC Module for both Deno and Browser. 一个为双向调用而创造的RPC模块
https://github.com/imzlh/webrpc
deno rpc rpc-framework web
Last synced: about 2 months ago
JSON representation
Perfect RPC Module for both Deno and Browser. 一个为双向调用而创造的RPC模块
- Host: GitHub
- URL: https://github.com/imzlh/webrpc
- Owner: imzlh
- Created: 2024-02-12T12:32:09.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2024-02-19T09:30:29.000Z (11 months ago)
- Last Synced: 2024-02-19T10:47:53.335Z (11 months ago)
- Topics: deno, rpc, rpc-framework, web
- Language: TypeScript
- Homepage: https://deno.land/x/webrpc/
- Size: 544 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# RPC 3
RPC,在Windows上称作“远程过程调用”。作为系统的关键组件,在WinB上也无可辩驳地成为了通信核心此RPC支持双向JS调用、双向Pipe和调用链,让诸多有双向或短时间内单向调用需求的项目有了更多选择
# 快速开始
在 v1.1中,我们将三个文件合并成了一个 `mod.ts`.
RPCBrowser给浏览器使用,RPC给Deno和浏览器共用## Deno
import { RPC, Env } from 'https://deno.land/x/webrpc/mod.ts';
Deno.serve(function(req){
const rpc = new RPC(),
{socket,response} = Deno.upgradeWebSocket(req);
rpc.socket = socket;
return response;
}
Env.provide('...',...)## 浏览器
// 这里使用了RPCBrowser,可以更方便地用在客户端上
// 当然,Deno做客户端也可以
import { RPCBrowser, Env } from 'mod.js';
const rpc = new RPCBrowser('ws://demo.com/rpc/ws');
// Env.provide('...',...)
// rpc.call(...)
// rpc.pipe(...)
// rpc.prepare(...).then(...).then(...).send(true)
// ...# 更多?
RPC3是一个框架,支持 浏览器(browser.ts)、Deno端(直接使用mod.ts)、Bun(未测试)且经过小幅度改动或一个polyfill即可移植到NodeJS
需要提前安装好 `typescript` 和 `deno`,然后:
你可以试试看 `tsc && cd test && deno run -A --unstable-sloppy-imports deno.ts`运行简单的服务器
简单修改即可投入生产使用![示例](image.png)