2017-09-03 2 views

Répondre

1

NB: Bond Comm est déconseillé. Il n'est plus supporté et sera retiré de Bond dans une prochaine version. Bond-over-gRPC est son remplacement. Lorsque vous utilisez Bond-over-gRPC ou Bond Comm, le code côté serveur généré est une classe abstraite avec une méthode abstraite pour chaque méthode dans la définition de service. Pour fournir votre logique pour ces méthodes, vous héritez de la base générée et fournissez des implémentations pour toutes les méthodes de service. Ensuite, généralement dans votre fonction principale, vous créez un serveur (pour Bond-over-gRPC) ou un Listener (pour Bond Comm) et enregistrez une instance de la classe d'implémentation. Cela configure le routage pour la méthode de service IDL à votre code d'implémentation.

De l'Bond-over-gRPC C# documentation:

Étant donné une définition de service comme ce qui suit:

service Example 
{ 
    ExampleResponse ExampleMethod(ExampleRequest); 
} 

gbc va générer des classes C# pour la GRPC avec le drapeau --grpc:

gbc c# --grpc example.bond 

...

Pour construire la fonctionnalité de service, il suffit d'écrire une implémentation de service béton par le sous-classement de la base de serveur et fournissant la logique métier :

public class ExampleServiceImpl : Example.ExampleBase { 
    public override async Task<IMessage<ExampleResponse>> 
     ExampleMethod(
      IMessage<ExampleRequest> param, 
      ServerCallContext context) 
    { 
     ExampleRequest request = param.Payload.Deserialize(); 
     var response = new ExampleResponse(); 

     // Service business logic goes here 

     return Message.From(response); 
    } 
} 

Cette implémentation de service est relié à un serveur GRPC comme suit:

var server = new Grpc.Core.Server { 
    Services = { Example.BindService(new ExampleServiceImpl()) }, 
    Ports = { new Grpc.Core.ServerPort(ExampleHost, ExamplePort, Grpc.Core.ServerCredentials.Insecure) } }; 
server.Start(); 

À ce stade, le serveur est prêt à recevoir des demandes et à les acheminer vers l'implémentation du service .

Il y a d'autres exemples aussi bien:

Il est intéressant de souligner que (Bond-sur-) GRPC et Bond Comm ne sont ni SOAP ni REST. La question a été marquée avec , et parfois les gens signifient SOAP/REST quand ils parlent de services Web. Je pense à la fois à gRPC et à Bond Comm en tant que protocoles binaires personnalisés sur TCP, bien que gRPC soit exécuté sur HTTP/2.