k8w / tsrpc-browser

TSRPC Client for browser
MIT License
9 stars 8 forks source link
framework fullstack k8w rpc tsrpc typescript

Browser Client of TSRPC

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

Introduction

HttpClient is using XMLHttpRequest, and WebSocketClient is using WebSocket of browser. Platform adapted to XMLHttpRequest and WebSocket (like ReactNative) can also use this library.

Usage

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);
}

Browser Support

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:

Caution

  1. To support Internet Explorer, you should import es6-promise polyfill by yourself.
  2. WebSocket only support IE10+.