diff options
Diffstat (limited to 'spark-common/src/main/proto/spark/spark_ws.proto')
-rw-r--r-- | spark-common/src/main/proto/spark/spark_ws.proto | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/spark-common/src/main/proto/spark/spark_ws.proto b/spark-common/src/main/proto/spark/spark_ws.proto new file mode 100644 index 0000000..97b5480 --- /dev/null +++ b/spark-common/src/main/proto/spark/spark_ws.proto @@ -0,0 +1,78 @@ +syntax = "proto3"; + +package spark; + +import "spark/spark.proto"; +import "spark/spark_sampler.proto"; + +option java_package = "me.lucko.spark.proto"; +option java_outer_classname = "SparkWebSocketProtos"; + +message RawPacket { + int32 version = 1; + bytes public_key = 2; + bytes signature = 3; + bytes message = 4; +} + +message PacketWrapper { + oneof packet { + // server -> client + ServerPong server_pong = 1; + ServerConnectResponse server_connect_response = 2; + ServerUpdateSamplerData server_update_sampler = 3; + ServerUpdateStatistics server_update_statistics = 4; + + // client -> server + ClientPing client_ping = 10; + ClientConnect client_connect = 11; + } +} + +// (signed) Sent from the server -> client in response to a ping +message ServerPong { + bool ok = 1; + int32 data = 2; +} + +// (signed) Sent from the server -> client in response to a connection request +message ServerConnectResponse { + string client_id = 1; + State state = 2; + Settings settings = 3; + string last_payload_id = 4; + + enum State { + ACCEPTED = 0; + UNTRUSTED = 1; + REJECTED = 2; + } + + message Settings { + int32 statistics_interval = 1; + int32 sampler_interval = 2; + } +} + +// (signed) Sent from the server -> client when there is new sampler data +message ServerUpdateSamplerData { + string payload_id = 1; +} + +// (signed) Sent from the server -> client periodically to update statistics shown in widgets +message ServerUpdateStatistics { + PlatformStatistics platform = 1; + SystemStatistics system = 2; +} + +// (unsigned) Sent from the client -> server on initial connection +message ClientConnect { + string client_id = 1; + string description = 2; +} + +// (unsigned) Sent from the client -> server to check for responsiveness +message ClientPing { + bool ok = 1; + int32 data = 2; +} |