syntax = "proto3";

package v2ray.core.transport.internet.websocket;
option csharp_namespace = "V2Ray.Core.Transport.Internet.Websocket";
option go_package = "github.com/v2fly/v2ray-core/v5/transport/internet/websocket";
option java_package = "com.v2ray.core.transport.internet.websocket";
option java_multiple_files = true;

import "common/protoext/extensions.proto";

message Header {
  string key = 1;
  string value = 2;
}

message Config {
  option (v2ray.core.common.protoext.message_opt).type = "transport";
  option (v2ray.core.common.protoext.message_opt).short_name = "ws";
  option (v2ray.core.common.protoext.message_opt).allow_restricted_mode_load = true;

  option (v2ray.core.common.protoext.message_opt).transport_original_name = "websocket";

  reserved 1;

  // URL path to the WebSocket service. Empty value means root(/).
  string path = 2;

  repeated Header header = 3;

  bool accept_proxy_protocol = 4;

  int32 max_early_data = 5;

  bool use_browser_forwarding = 6;

  string early_data_header_name = 7;
}
