fireflo.proto et la bibliothèque
gRPC standard de son langage. Remplacez sms.example.com:8090 par l’adresse que vous donne votre
fournisseur, et gardez le mot de passe hors de votre code — les exemples le lisent depuis
SMS_PASSWORD.
Les exemples se connectent sans TLS (
-plaintext, un canal non sécurisé), comme vous le feriez vers
une passerelle sur un réseau privé. Si votre fournisseur vous donne une adresse TLS — souvent le
port 443 — utilisez plutôt un canal sécurisé ; chaque section montre le changement d’une ligne.grpcurl
Grâce à la réflexion serveur,grpcurl n’a besoin d’aucun fichier proto. Si votre fournisseur a
désactivé la réflexion, ajoutez -proto fireflo.proto à chaque commande.
-plaintext. Un refus affiche le code gRPC et le message ; ajoutez -v pour voir
les trailers, y compris le détail d’erreur.
Python (grpcio)
Générez les stubs une fois :Login, le wrapper de reconnexion et Send
SendStream
Accusés : Pull, ou Subscribe
Subscribe qui se termine par SESSION_EXPIRED ou UNAVAILABLE est rouvert après un nouveau
Login ; ce que vous n’aviez pas acquitté est livré à nouveau.
Java (grpc-java)
Générez avec le plugin protobuf de Gradle ou de Maven et le pluginprotoc-gen-grpc-java ; les
classes arrivent dans le package fireflo.v1. Il vous faut grpc-netty-shaded (ou un autre
transport), grpc-protobuf et grpc-stub.
Login, le wrapper de reconnexion et Send
StatusRuntimeException venant de sendOne, lisez errorDetail(e) : pour OUTCOME_UNKNOWN,
ne réessayez qu’avec le même clientRef ; quand d.hasRetryAfterSeconds(), attendez ce délai et
réessayez ; sinon, corrigez la requête.
SendStream
onNext s’exécute sur les threads propres de gRPC, donc les résultats sont lus pendant que vous
écrivez. Pour un très gros lot, vérifiez isReady() sur un ClientCallStreamObserver (ou utilisez
ClientResponseObserver) avant chaque écriture, pour que votre processus ne mette pas en tampon ce
que la passerelle ne lit pas encore.
Accusés avec Pull
Go (grpc-go)
Générez avecprotoc --go_out=. --go-grpc_out=. fireflo.proto (plugins protoc-gen-go et
protoc-gen-go-grpc). Le nom du package est fireflov1 ; le chemin d’import dépend de votre module et
de vos réglages --go_opt.
Login, le wrapper de reconnexion et Send
proto.String,
proto.Bool et proto.Int32, et lisez-les avec les méthodes Get… générées.
Accusés avec Subscribe
Voir aussi
Erreurs et codes de statut
Ce que signifie chaque refus, et lesquels réessayer.
Le fichier proto
Le contrat à partir duquel ces exemples sont générés.