Red de conocimiento informático - Problemas con los teléfonos móviles - Sintaxis básica de Protobuf3

Sintaxis básica de Protobuf3

ProtoBuf (Google Protocol Buffer) es un formato de datos estructurados en serie utilizado por Google para el intercambio de datos. Es multiplataforma, multilingüe y extensible. Es el mismo que los tipos XML y JSON de uso común. , pero el volumen de transmisión es menor y las capacidades de codificación y decodificación son mayores. Es especialmente adecuado para campos como el almacenamiento de datos, la red y la transmisión de datos que requieren un gran volumen de almacenamiento y rendimiento en tiempo real. Es particularmente adecuado para almacenamiento de datos, transmisión de datos de red y otras áreas que requieren alto almacenamiento y rendimiento en tiempo real, y se ha desarrollado en la versión protoc3.

Ventajas: alta eficiencia de espacio, alta eficiencia de tiempo, sensibilidad al tamaño de los datos, alta eficiencia de transmisión

Desventajas: la estructura del mensaje no es muy legible y la secuencia de bytes serializados no es adecuada para La validez de la secuencia binaria no se puede analizar simplemente

Nota: El último tipo golang debe introducir el paquete github.com/golang/protobuf/ptypes/timestamp, que se define de la siguiente manera

Entonces el .protp debe importarse. El archivo se importa a google/protobuf/timestamp. proto

Si un campo se modifica repetidamente, significa que es un campo de lista, equivalente a fragmentar en golang

Si desea conservar algunas etiquetas o campos numéricos, puede usar reservado modificador

El valor del primer valor de enumeración debe ser 0 y hay al menos un valor de enumeración. Un valor puede corresponder a múltiples valores de enumeración y la opción enable_alias = true debe estar marcada como no; Se recomienda utilizar valores negativos.

Especifique el servicio en el archivo .proto y luego defina el método rpc en el servicio, prestando atención a especificar los parámetros y el valor de retorno

gRPC le permite definir cuatro tipos de métodos de servicio

El cliente usa el código auxiliar para enviar una solicitud al servidor y luego espera una respuesta, como una llamada de función normal.

Puede especificar un método de transmisión del lado del servidor insertando la palabra clave de transmisión antes del tipo de parámetro de devolución de respuesta. El cliente envía una solicitud al servidor y obtiene una secuencia para leer la secuencia de mensajes devueltos. El cliente lee la secuencia devuelta hasta que no contiene mensajes.

Especifique el método de transmisión del cliente especificando la palabra clave de transmisión antes del tipo de parámetro de solicitud. El cliente escribirá una serie de mensajes y los enviará al servidor, nuevamente utilizando transmisiones. Una vez que el cliente ha terminado de escribir el mensaje, espera a que el servidor lea la respuesta que le devuelve.

El tipo de método se especifica anteponiendo a la solicitud y la respuesta la palabra clave stream. Las dos secuencias se ejecutan de forma independiente, por lo que el cliente y el servidor pueden leer y escribir en cualquier orden: por ejemplo, el servidor puede esperar a que se reciban todos los mensajes del cliente antes de escribir una respuesta, o puede leer y escribir mensajes alternativamente, o combinarlos de otra manera. lectura y escritura.