All Downloads are FREE. Search and download functionalities are using the official Maven repository.

yamcs.api.websocket.proto Maven / Gradle / Ivy

There is a newer version: 5.10.9
Show newest version
syntax="proto3";

package yamcs.api;

option java_package = "org.yamcs.protobuf";
option java_outer_classname = "WebSocketProto";
option java_multiple_files = true;

import "google/protobuf/any.proto";

import "yamcs/api/exception.proto";

message ClientMessage {
  // Message type. Typically the name of a topic to subscribe to, or a built-in like "cancel".
  string type = 1;
  
  // Options specific to the type
  google.protobuf.Any options = 2;
  
  // Optional client-side message identifier, returned in reply messages.
  int32 id = 3;
  
  // If applicable, the call associated with this message
  // This should be used when the client is streaming multiple messages
  // handled by the same call.
  int32 call = 4;
  
  // If set, permit the server to keep a WebSocket connection despite frame writes
  // getting dropped (channel not open or not writable). If unset the default is 0,
  // meaning that if the server can't write a frame, it will close the connection
  // (impacting all calls on that connection).
  //
  // This attribute is only applied when it is set on the first message of a call.
  // Since Yamcs 5.7.6 this option is deprecated in favour of lowPriority below.
  int32 maxDroppedWrites = 5 [deprecated = true];

  //If set to true, permit the server to drop messages if writing the message would cause the
  // channel to exceed the highWaterMark
  // (see https://docs.yamcs.org/yamcs-server-manual/services/global/http-server/)
  // This attribute is only applied when it is set on the first message of a call.
  //
  // Note that if a message exceeds the highWaterMark, with this option set it will always be dropped.
  // A warning will be printed in the Yamcs logs in this case.
  //
  bool lowPriority = 6;
}

message ServerMessage {

  // Message type. Typically the name of the subscribed topic, or a built-in like "reply".
  string type = 1;

  // If applicable, the call associated with this message
  int32 call = 2;
  
  // Sequence counter (scoped to the call)
  int32 seq = 3;

  google.protobuf.Any data = 4;
}

// Message to be provided in a ClientMessage if type is "cancel".
// This is a special message type that allows cancelling a call.
message CancelOptions {
  int32 call = 1;
}

// Message to be provided in the data field of a ServerMessage if type is "reply".
message Reply {

  // The id of the original client message (if provided)
  int32 reply_to = 1;
  
  // If set, the call was not successful.
  ExceptionMessage exception = 2;
}

// Message to be provided in the data field of a ServerMessage if type is "state".
message State {
  message CallInfo {
    int32 call = 1;
    string type = 2;
    google.protobuf.Any options = 3;
  }
  repeated CallInfo calls = 1;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy