nodejs bauen grpc

May 25, 2023 pm 03:19 PM

Vorwort

gRPC ist das leistungsstarke, sprachübergreifende Open-Source-RPC-Framework. Sein Ziel besteht darin, Client-Anwendungen den Aufruf serverseitiger Methoden wie den Aufruf lokaler Funktionen zu ermöglichen. Es unterstützt mehrere Programmiersprachen, darunter: C++, Python, Java. Go, Sprachen wie Node.js.

Die Verwendung von gRPC in Node.js kann unsere Interaktion zwischen dem Server und dem Client erheblich erleichtern und gleichzeitig eine hohe Leistung gewährleisten, aber auch Datensicherheit und Vertraulichkeit gewährleisten. In diesem Artikel wird erläutert, wie Sie Node.js zum Erstellen eines gRPC-Dienstes verwenden Terminal und Client.

Schritt 1: Node.js und gRPC installieren

Zunächst müssen Sie sicherstellen, dass Node.js und npm lokal installiert wurden. Geben Sie dann im Terminal den folgenden Befehl ein, um gRPC zu installieren:

npm install -g grpc
Nach dem Login kopieren

Nach Abschluss der Installation können Sie die Versionsinformationen von gRPC in der Datei package.json sehen.

nodejs bauen grpc

Schritt 2: Definieren Sie die .proto-Datei

gRPC definiert den Dienst über die Proto-Datei, die zum Definieren der Dienstschnittstelle, des Nachrichtenformats usw. verwendet wird. Als Nächstes definieren wir zunächst einen einfachen Dienst, der es dem Client ermöglicht, eine Nachricht an den Server zu senden und nach Erhalt der Nachricht eine geänderte Nachricht zurückzugeben. Erstellen Sie eine Datei mit dem Namen example.proto und definieren Sie den folgenden Inhalt:

syntax = "proto3";

package example;

service Example {
  rpc ModifyMessage (Message) returns (Message){}

}
message Message {
  string content = 1;
}
Nach dem Login kopieren

Schritt 3: Code generieren

Führen Sie den folgenden Befehl in dem Verzeichnis aus, in dem sich die Datei example.proto befindet, um den entsprechenden Code zu generieren:

grpc_tools_node_protoc --js_out=import_style=commonjs,binary:./ --grpc_out=./ --plugin=protoc-gen-grpc=`which grpc_tools_node_protoc_plugin` example.proto
Nach dem Login kopieren

grpc_tools_node_protoc wird verwendet Hier wird der für Node.js erforderliche Code generiert und das Ausgabeverzeichnis angegeben.

Der generierte Code enthält: example_pb.js und example_grpc_pb.js.

Schritt 4: Implementieren Sie den Server

Der serverseitige Code lautet wie folgt:

const grpc = require("grpc");
const example = require("./example_pb");
const exampleService = require("./example_grpc_pb");

const server = new grpc.Server();

function modifyMessage(call, callback) {
  const response = new example.Message();
  response.setContent(call.request.getContent().toUpperCase());
  callback(null, response);
}

server.addService(exampleService.ExampleService, {
  modifyMessage: modifyMessage,
});

server.bind("localhost:50051", grpc.ServerCredentials.createInsecure());
console.log("Server running at http://localhost:50051");
server.start();
Nach dem Login kopieren

In diesem Beispiel erstellt der Server einen neuen GRPC-Server und fügt dem Server eine Methode namens „modifyMessage“ hinzu. Diese Methode empfängt ein Message-Objekt als Parameter, wandelt das Inhaltsfeld im Message-Objekt in Großbuchstaben um und gibt es zurück.

Schließlich verwenden wir die Methode bind(), um den Dienst an localhost:50051 zu binden und den Server zu starten.

Schritt 5: Implementieren Sie den Client

Der Client-Code lautet wie folgt:

const grpc = require("grpc");
const example = require("./example_pb");
const exampleService = require("./example_grpc_pb");

const client = new exampleService.ExampleClient(
  "localhost:50051",
  grpc.credentials.createInsecure()
);

const request = new example.Message();

request.setContent("Hello World!");

client.modifyMessage(request, function (err, response) {
  console.log("Modified message: ", response.getContent());
});
Nach dem Login kopieren

In diesem Beispiel erstellen wir ein BeispielClient-Objekt und verwenden dessen Methode „modifyMessage()“, um ein Message-Objekt an den Server zu senden. Abschließend geben wir die Antwort vom Server aus, der die Buchstaben im String in Großbuchstaben umgewandelt hat.

Schritt sechs: Führen Sie den Dienst aus

Jetzt müssen wir den Dienst nur noch mit dem folgenden Befehl in dem Verzeichnis starten, in dem sich der Servercode befindet:

node server.js
Nach dem Login kopieren

Führen Sie dann den folgenden Befehl in dem Verzeichnis aus, in dem sich der Clientcode befindet befindet sich:

node client.js
Nach dem Login kopieren

Sie sollten die folgende Ausgabe sehen:

Modified message:  HELLO WORLD!
Nach dem Login kopieren

An diesem Punkt haben wir erfolgreich einen grundlegenden gRPC-Server- und Client-Interaktionsprozess implementiert.

Zusammenfassung

In diesem Artikel wird erläutert, wie Sie mit Node.js einen gRPC-Server und -Client erstellen und mit Protobuf die Datenstruktur und das Nachrichtenformat zwischen dem Erstellen von Diensten und dem Herstellen von Verbindungen definieren. gRPC ist ein leistungsstarkes, sprachübergreifendes RPC-Framework, das für Anwendungen nützlich ist, die schnell Daten zwischen Clients und Servern übertragen müssen.

Das obige ist der detaillierte Inhalt vonnodejs bauen grpc. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen? Was ist Useffizität? Wie verwenden Sie es, um Nebenwirkungen auszuführen? Mar 19, 2025 pm 03:58 PM

In dem Artikel wird die Verwendung von UseEffect in React, einen Haken für die Verwaltung von Nebenwirkungen wie Datenabrufen und DOM -Manipulation in funktionellen Komponenten erläutert. Es erklärt die Verwendung, gemeinsame Nebenwirkungen und Reinigung, um Probleme wie Speicherlecks zu verhindern.

Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Wie verbinden Sie React -Komponenten mit Connect () an den Redux -Store? Mar 21, 2025 pm 06:23 PM

In Artikel werden die Verbindungskomponenten an Redux Store mit Connect () verbinden, wobei MapStatetoprops, MapDispatchtoprops und Leistungsauswirkungen erläutert werden.

Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen? Was ist usecontext? Wie verwenden Sie es, um den Zustand zwischen Komponenten zu teilen? Mar 19, 2025 pm 03:59 PM

Der Artikel erläutert den Usecontext in React, was das staatliche Management durch Vermeidung von Prop -Bohrungen vereinfacht. Es wird von Vorteilen wie zentraler Staat und Leistungsverbesserungen durch reduzierte Neulehre erörtert.

Wie verhindern Sie das Standardverhalten bei Ereignishandlern? Wie verhindern Sie das Standardverhalten bei Ereignishandlern? Mar 19, 2025 pm 04:10 PM

In Artikeln werden das Standardverhalten bei Ereignishandlern mithilfe von PURDDEFAULT () -Methoden, seinen Vorteilen wie verbesserten Benutzererfahrungen und potenziellen Problemen wie Barrierefreiheitsproblemen verhindern.

Was sind die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten? Was sind die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten? Mar 19, 2025 pm 04:16 PM

Der Artikel erörtert die Vor- und Nachteile kontrollierter und unkontrollierter Komponenten bei React, wobei sich auf Aspekte wie Vorhersehbarkeit, Leistung und Anwendungsfälle konzentriert. Es rät zu Faktoren, die bei der Auswahl zwischen ihnen berücksichtigt werden müssen.

Reacts Rolle bei HTML: Verbesserung der Benutzererfahrung Reacts Rolle bei HTML: Verbesserung der Benutzererfahrung Apr 09, 2025 am 12:11 AM

React kombiniert JSX und HTML, um die Benutzererfahrung zu verbessern. 1) JSX bettet HTML ein, um die Entwicklung intuitiver zu gestalten. 2) Der virtuelle DOM -Mechanismus optimiert die Leistung und reduziert den DOM -Betrieb. 3) Komponentenbasierte Verwaltungs-Benutzeroberfläche zur Verbesserung der Wartbarkeit. 4) Staatsmanagement und Ereignisverarbeitung verbessern die Interaktivität.

Was sind die Einschränkungen des Reaktivitätssystems von Vue 2 in Bezug auf Array- und Objektänderungen? Was sind die Einschränkungen des Reaktivitätssystems von Vue 2 in Bezug auf Array- und Objektänderungen? Mar 25, 2025 pm 02:07 PM

Das Reaktivitätssystem von VUE 2 kämpft mit der Einstellung der Direktarray -Index, der Längenänderung und der Addition/Löschung der Objekteigenschaften. Entwickler können die Mutationsmethoden von VUE und VUE.SET () verwenden, um die Reaktivität sicherzustellen.

Wie definieren Sie Routen mit der & lt; Route & gt; Komponente? Wie definieren Sie Routen mit der & lt; Route & gt; Komponente? Mar 21, 2025 am 11:47 AM

In dem Artikel wird das Definieren von Routen im React -Router unter Verwendung der & lt; Route & gt; Komponente, Abdeckung von Requisiten wie Pfad, Komponente, Rendern, Kindern, exakt und verschachteltes Routing.

See all articles