Saltar al contenido principal
Cada ejemplo de esta página usa solo fireflo.proto y la biblioteca gRPC estándar de su lenguaje. Sustituya sms.example.com:8090 por la dirección que le dé su proveedor, y mantenga la contraseña fuera de su código: los ejemplos la leen de SMS_PASSWORD.
Los ejemplos se conectan sin TLS (-plaintext, un canal inseguro), como lo haría con una pasarela en una red privada. Si su proveedor le da una dirección TLS (a menudo el puerto 443), use en su lugar un canal seguro; cada sección muestra el cambio de una línea.

grpcurl

Gracias a la reflexión del servidor, grpcurl no necesita ningún archivo proto. Si su proveedor ha desactivado la reflexión, añada -proto fireflo.proto a cada comando.
Con TLS, quite -plaintext. Un rechazo imprime el código y el mensaje gRPC; añada -v para ver los trailers, incluido el detalle del error.

Python (grpcio)

Genere los stubs una vez:

Login, el envoltorio de nuevo inicio de sesión y Send

SendStream

Acuses: Pull, o Subscribe

Un Subscribe que termina con SESSION_EXPIRED o UNAVAILABLE se reabre tras un Login nuevo; lo que no había confirmado se entrega de nuevo.

Java (grpc-java)

Genere con el plugin de protobuf para Gradle o Maven y el plugin protoc-gen-grpc-java; las clases quedan en el paquete fireflo.v1. Necesita grpc-netty-shaded (u otro transporte), grpc-protobuf y grpc-stub.

Login, el envoltorio de nuevo inicio de sesión y Send

Ante una StatusRuntimeException de sendOne, lea errorDetail(e): para OUTCOME_UNKNOWN, reintente solo con el mismo clientRef; cuando d.hasRetryAfterSeconds(), espere ese tiempo y reintente; en otro caso, corrija la petición.

SendStream

onNext se ejecuta en los propios hilos de gRPC, así que los resultados se leen mientras usted escribe. Para un lote muy grande, compruebe isReady() en un ClientCallStreamObserver (o use ClientResponseObserver) antes de cada escritura, para que su proceso no acumule en búfer lo que la pasarela aún no está leyendo.

Acuses con Pull

Go (grpc-go)

Genere con protoc --go_out=. --go-grpc_out=. fireflo.proto (plugins protoc-gen-go y protoc-gen-go-grpc). El nombre del paquete es fireflov1; la ruta de importación depende de su módulo y de los ajustes de --go_opt.

Login, el envoltorio de nuevo inicio de sesión y Send

Los campos opcionales del proto son punteros en Go: establézcalos con proto.String, proto.Bool y proto.Int32, y léalos con los métodos Get… generados.

Acuses con Subscribe

Relacionado

Errores y códigos de estado

Qué significa cada rechazo, y cuáles reintentar.

El archivo proto

El contrato a partir del cual se generan estos ejemplos.