syntax = "proto3"; package websocket; option go_package = "github.com/navidrome/navidrome/plugins/host/websocket"; // go:plugin type=host version=1 service WebSocketService { // Connect to a WebSocket endpoint rpc Connect(ConnectRequest) returns (ConnectResponse); // Send a text message rpc SendText(SendTextRequest) returns (SendTextResponse); // Send binary data rpc SendBinary(SendBinaryRequest) returns (SendBinaryResponse); // Close a connection rpc Close(CloseRequest) returns (CloseResponse); } message ConnectRequest { string url = 1; map headers = 2; string connection_id = 3; } message ConnectResponse { string connection_id = 1; string error = 2; } message SendTextRequest { string connection_id = 1; string message = 2; } message SendTextResponse { string error = 1; } message SendBinaryRequest { string connection_id = 1; bytes data = 2; } message SendBinaryResponse { string error = 1; } message CloseRequest { string connection_id = 1; int32 code = 2; string reason = 3; } message CloseResponse { string error = 1; }