ReactiveX wrapper for grpc-node TypeScript projects
npm install grpc-node-rxjsrxjs Observables.
typescript
import { createServer } from 'grpc-node-rxjs';
import { Observable } from 'rxjs/Observable';
import * as grpc from 'grpc';
import { of } from 'rxjs/observable/of';
import { grpctest } from './test-res/grpc-namespaces';
const PROTO_PATH = __dirname + '/test-res/testservice.proto';
const server: grpctest.Server = createServer(PROTO_PATH, 'grpctest');
server.addTestRunner({
UnaryMethod(request: grpctest.TestRequest,
metaData?: grpc.Metadata): Observable {
return of({message: 'unary ' + request.name, position: grpctest.Position.ONE});
}
});
server.bind('127.0.0.1:5120', grpc.ServerCredentials.createInsecure());
server.start();
`
Client example
`typescript
import { createClient } from 'grpc-node-rxjs';
import { grpctest } from './test-res/grpc-namespaces';
import * as grpc from 'grpc';
const PROTO_PATH = __dirname + '/test-res/testservice.proto';
const client = createClient(PROTO_PATH, 'grpctest');
const testRunner = client.getTestRunner('127.0.0.1:5120', grpc.credentials.createInsecure());
const metaData = new grpc.Metadata();
metaData.set('special', 'x');
testRunner.UnaryMethod({name: 'a'}, metaData).subscribe(response => {
console.log('response', response);
});
``