mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-22 07:08:28 +00:00
[TS/JS] Updates the grpc (#6654)
* Updates go lang support to allow other languages to communicate with it * Update js grpc lib to use grpc-js Reformat code
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
"server": "node dist/server.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"flatbuffers": "^2.0.0",
|
||||
"grpc": "^1.24.3"
|
||||
"@grpc/grpc-js": "^1.3.2",
|
||||
"flatbuffers": "^2.0.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,22 +1,22 @@
|
||||
import grpc from 'grpc';
|
||||
import * as grpc from '@grpc/grpc-js';
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
import { HelloReply } from './models/hello-reply';
|
||||
import { HelloRequest } from './models/hello-request';
|
||||
import { GreeterClient } from './greeter_grpc';
|
||||
import { flatbuffers } from 'flatbuffers';
|
||||
|
||||
async function main(PORT: Number, name: String) {
|
||||
const _server = new GreeterClient(`localhost:${PORT}`, grpc.credentials.createInsecure());
|
||||
async function main(PORT: Number, name: string) {
|
||||
const client = new GreeterClient(`localhost:${PORT}`, grpc.credentials.createInsecure());
|
||||
const builder = new flatbuffers.Builder();
|
||||
const offset = builder.createString(name);
|
||||
const root = HelloRequest.createHelloRequest(builder, offset);
|
||||
builder.finish(root);
|
||||
const buffer = HelloRequest.getRootAsHelloRequest(new flatbuffers.ByteBuffer(builder.asUint8Array()));
|
||||
|
||||
_server.SayHello(buffer, (err, response) => {
|
||||
client.SayHello(buffer, (err, response) => {
|
||||
console.log(response.message());
|
||||
});
|
||||
|
||||
const data = _server.SayManyHellos(buffer, null);
|
||||
const data = client.SayManyHellos(buffer, null);
|
||||
|
||||
data.on('data', (data) => {
|
||||
console.log(data.message());
|
||||
@@ -25,7 +25,7 @@ async function main(PORT: Number, name: String) {
|
||||
|
||||
const args = process.argv.slice(2)
|
||||
const PORT = Number(args[0]);
|
||||
const name = String(args[1] ?? "flatbuffers");
|
||||
const name: string = args[1] ?? "flatbuffers";
|
||||
|
||||
if (PORT) {
|
||||
main(PORT, name);
|
||||
|
||||
@@ -3,7 +3,7 @@ import * as flatbuffers from 'flatbuffers';
|
||||
import { HelloReply as models_HelloReply } from './models/hello-reply';
|
||||
import { HelloRequest as models_HelloRequest } from './models/hello-request';
|
||||
|
||||
import * as grpc from 'grpc';
|
||||
import * as grpc from '@grpc/grpc-js';
|
||||
|
||||
interface IGreeterService extends grpc.ServiceDefinition<grpc.UntypedServiceImplementation> {
|
||||
SayHello: IGreeterService_ISayHello;
|
||||
@@ -32,7 +32,7 @@ interface IGreeterService_ISayManyHellos extends grpc.MethodDefinition<models_He
|
||||
|
||||
export const GreeterService: IGreeterService;
|
||||
|
||||
export interface IGreeterServer {
|
||||
export interface IGreeterServer extends grpc.UntypedServiceImplementation {
|
||||
SayHello: grpc.handleUnaryCall<models_HelloRequest, models_HelloReply>;
|
||||
SayManyHellos: grpc.handleServerStreamingCall<models_HelloRequest, models_HelloReply>;
|
||||
}
|
||||
@@ -46,7 +46,8 @@ export interface IGreeterClient {
|
||||
}
|
||||
|
||||
export class GreeterClient extends grpc.Client implements IGreeterClient {
|
||||
constructor(address: string, credentials: grpc.ChannelCredentials, options?: object); public SayHello(request: models_HelloRequest, callback: (error: grpc.ServiceError | null, response: models_HelloReply) => void): grpc.ClientUnaryCall;
|
||||
constructor(address: string, credentials: grpc.ChannelCredentials, options?: object);
|
||||
public SayHello(request: models_HelloRequest, callback: (error: grpc.ServiceError | null, response: models_HelloReply) => void): grpc.ClientUnaryCall;
|
||||
public SayHello(request: models_HelloRequest, metadata: grpc.Metadata, callback: (error: grpc.ServiceError | null, response: models_HelloReply) => void): grpc.ClientUnaryCall;
|
||||
public SayHello(request: models_HelloRequest, metadata: grpc.Metadata, options: Partial<grpc.CallOptions>, callback: (error: grpc.ServiceError | null, response: models_HelloReply) => void): grpc.ClientUnaryCall;
|
||||
public SayManyHellos(request: models_HelloRequest, metadata: grpc.Metadata): grpc.ClientReadableStream<models_HelloReply>;
|
||||
|
||||
@@ -3,13 +3,13 @@ import * as flatbuffers from 'flatbuffers';
|
||||
import { HelloReply as models_HelloReply } from './models/hello-reply';
|
||||
import { HelloRequest as models_HelloRequest } from './models/hello-request';
|
||||
|
||||
var grpc = require('grpc');
|
||||
var grpc = require('@grpc/grpc-js');
|
||||
|
||||
function serialize_models_HelloReply(buffer_args) {
|
||||
if (!(buffer_args instanceof models_HelloReply)) {
|
||||
throw new Error('Expected argument of type HelloReply');
|
||||
}
|
||||
return buffer_args.serialize();
|
||||
return Buffer.from(buffer_args.serialize());
|
||||
}
|
||||
|
||||
function deserialize_models_HelloReply(buffer) {
|
||||
@@ -21,7 +21,7 @@ function serialize_models_HelloRequest(buffer_args) {
|
||||
if (!(buffer_args instanceof models_HelloRequest)) {
|
||||
throw new Error('Expected argument of type HelloRequest');
|
||||
}
|
||||
return buffer_args.serialize();
|
||||
return Buffer.from(buffer_args.serialize());
|
||||
}
|
||||
|
||||
function deserialize_models_HelloRequest(buffer) {
|
||||
|
||||
@@ -1,21 +1,19 @@
|
||||
import grpc from 'grpc';
|
||||
import * as grpc from '@grpc/grpc-js';
|
||||
import * as flatbuffers from 'flatbuffers';
|
||||
import { HelloReply } from './models/hello-reply';
|
||||
import { HelloRequest } from './models/hello-request';
|
||||
import { IGreeterServer, GreeterService } from './greeter_grpc';
|
||||
import { flatbuffers } from 'flatbuffers';
|
||||
|
||||
class GreeterServer implements IGreeterServer {
|
||||
|
||||
SayHello(call: grpc.ServerUnaryCall<HelloRequest>, callback: grpc.sendUnaryData<HelloReply>): void {
|
||||
const greeter: IGreeterServer = {
|
||||
SayHello(call: grpc.ServerUnaryCall<HelloRequest, HelloReply>, callback: grpc.sendUnaryData<HelloReply>): void {
|
||||
console.log(`SayHello ${call.request.name()}`);
|
||||
const builder = new flatbuffers.Builder();
|
||||
const offset = builder.createString(`welcome ${call.request.name()}`);
|
||||
const root = HelloReply.createHelloReply(builder, offset);
|
||||
builder.finish(root);
|
||||
callback(null, HelloReply.getRootAsHelloReply(new flatbuffers.ByteBuffer(builder.asUint8Array())));
|
||||
}
|
||||
|
||||
async SayManyHellos(call: grpc.ServerWritableStream<HelloRequest>): Promise<void> {
|
||||
},
|
||||
async SayManyHellos(call: grpc.ServerWritableStream<HelloRequest, HelloReply>): Promise<void> {
|
||||
const name = call.request.name();
|
||||
console.log(`${call.request.name()} saying hi in different langagues`);
|
||||
['Hi', 'Hallo', 'Ciao'].forEach(element => {
|
||||
@@ -32,10 +30,20 @@ class GreeterServer implements IGreeterServer {
|
||||
function serve(): void {
|
||||
const PORT = 3000;
|
||||
const server = new grpc.Server();
|
||||
server.addService<IGreeterServer>(GreeterService, new GreeterServer());
|
||||
server.addService(GreeterService, greeter);
|
||||
console.log(`Listening on ${PORT}`);
|
||||
server.bind(`localhost:${PORT}`, grpc.ServerCredentials.createInsecure());
|
||||
server.start();
|
||||
server.bindAsync(
|
||||
`localhost:${PORT}`,
|
||||
grpc.ServerCredentials.createInsecure(),
|
||||
(err: Error | null, port: number) => {
|
||||
if (err) {
|
||||
console.error(`Server error: ${err.message}`);
|
||||
} else {
|
||||
console.log(`Server bound on port: ${port}`);
|
||||
server.start();
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
serve();
|
||||
Reference in New Issue
Block a user