TSRPC is a TypeScript RPC framework with runtime type checking and binary serialization. See more detail at https://github.com/k8w/tsrpc.
Official site: https://tsrpc.cn
HttpClient
is using XMLHttpRequest
, and WebSocketClient
is using WebSocket
of browser.
Platform adapted to XMLHttpRequest
and WebSocket
(like ReactNative
) can also use this library.
import { HttpClient } from 'tsrpc-browser';
import { serviceProto } from './shared/protocols/serviceProto';
// Create the Client
let client = new HttpClient(serviceProto, {
server: 'http://127.0.0.1:3000',
logger: console
});
async function yourFunc() {
// Call API
let ret = await client.callApi('Hello', {
name: 'World'
});
// Error: ret.err is TsrpcError
if (!ret.isSucc) {
alert('Error: ' + ret.err.message);
return;
}
// Success: ret.res is ResHello
alert('Success: ' + ret.res.reply);
}
The library is compiled to target ES2015
, so if you need legacy browser support, you can use Babel to transform the final code to ES5
. After that it can support all these browser:
- IE8+
- Chrome
- Firefox
- Safari
- etc...
Caution
- To support Internet Explorer, you should import
es6-promise
polyfill by yourself. - WebSocket only support IE10+.