syntax = "proto3"; package websocket; import "google/protobuf/empty.proto"; import "google/protobuf/wrappers.proto"; option go_package = "github.com/soardigital/klozr-protobuf/websocket"; option java_multiple_files = true; option java_package = "klozr.websocket"; service MessageService { rpc generateChannelMessage(ChannelMessage) returns (google.protobuf.Empty); rpc generateUserMessage(UserMessage) returns (google.protobuf.Empty); } service AdminService { rpc getAllUserSessions(google.protobuf.StringValue) returns (UserSessionsResponse); rpc getConfiguration(google.protobuf.Empty) returns (BrokerConfig); } message ChannelMessage { string channelID = 1; string destination = 2; string messageType = 3; map details = 4; } message UserMessage { string userID = 1; string channelID = 2; string messageType = 3; map notificationDetails = 4; } message CreateNotificationRequest { string ownerPid = 1; string notificationType = 2; map notificationDetails = 3; } message UserSessionsResponse { map sessions = 1; } message WebsocketString { repeated string data = 1; } message BrokerConfig { repeated string applicationDestinationPrefixes = 1; repeated string brokerDestinationPrefixes = 2; repeated string stompPaths = 3; int64 userSessionDurationInSeconds = 4; int64 channelSessionDurationInSeconds = 5; }