Class ObservableQueryHubMessage
- Namespace
- Cratis.Arc.Queries
- Assembly
- Cratis.Arc.Core.dll
Represents a protocol message exchanged over the ObservableQueryDemultiplexer WebSocket or SSE connection.
public class ObservableQueryHubMessage
- Inheritance
-
ObservableQueryHubMessage
- Inherited Members
- Extension Methods
Constructors
ObservableQueryHubMessage()
Represents a protocol message exchanged over the ObservableQueryDemultiplexer WebSocket or SSE connection.
[JsonConstructor]
public ObservableQueryHubMessage()
Properties
KeepAliveIntervalMs
Gets or sets the server's keep-alive interval in milliseconds, or 0 when keep-alive is disabled.
public long? KeepAliveIntervalMs { get; set; }
Property Value
- long?
Remarks
Only set on Connected messages. Clients derive their idle threshold from this rather than assuming the default interval, so that reconfiguring the server cannot leave a client declaring healthy connections dead.
Payload
Gets or sets the message payload. Interpretation depends on Type:
- Subscribe — an ObservableQuerySubscriptionRequest.
- QueryResult — a QueryResult.
- Error — a plain error string.
- Connected — the server-assigned connection identifier.
public object? Payload { get; set; }
Property Value
QueryId
Gets or sets the client-assigned query identifier used to correlate subscriptions with their result updates.
public string? QueryId { get; set; }
Property Value
Revision
Gets or sets the optional positive subscription revision used to order operations and reject stale messages.
public long? Revision { get; set; }
Property Value
- long?
SupportsSubscriptionRevisions
Gets or sets whether the server supports revision-aware subscription operations and result frames.
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingDefault)]
public bool SupportsSubscriptionRevisions { get; set; }
Property Value
Remarks
Set to true on Connected messages from capable servers. The field is absent when communicating with older servers.
Timestamp
Gets or sets the Unix millisecond timestamp, used for ping/pong latency tracking.
public long? Timestamp { get; set; }
Property Value
- long?
Type
Gets or sets the type of message.
[JsonConverter(typeof(JsonStringEnumConverter<ObservableQueryHubMessageType>))]
public ObservableQueryHubMessageType Type { get; set; }
Property Value
Methods
CreateConnected(string, TimeSpan)
Creates a Connected message carrying the server-assigned connection identifier, the server's keep-alive interval, and its subscription revision capability.
public static ObservableQueryHubMessage CreateConnected(string connectionId, TimeSpan keepAliveInterval)
Parameters
connectionIdstringThe unique identifier for the observable query hub connection.
keepAliveIntervalTimeSpanThe server's keep-alive interval. Zero or negative means keep-alive is disabled.
Returns
- ObservableQueryHubMessage
A populated ObservableQueryHubMessage.
CreateError(string, string)
Creates an Error message.
public static ObservableQueryHubMessage CreateError(string queryId, string errorMessage)
Parameters
Returns
- ObservableQueryHubMessage
A populated ObservableQueryHubMessage.
CreateError(string, string, long?)
Creates a revision-aware Error message.
public static ObservableQueryHubMessage CreateError(string queryId, string errorMessage, long? revision)
Parameters
queryIdstringThe query identifier.
errorMessagestringThe error message.
revisionlong?The optional subscription revision.
Returns
- ObservableQueryHubMessage
A populated ObservableQueryHubMessage.
CreatePing()
Creates a Ping message with the current UTC timestamp.
public static ObservableQueryHubMessage CreatePing()
Returns
- ObservableQueryHubMessage
A populated ObservableQueryHubMessage.
CreatePong(long)
Creates a Pong message.
public static ObservableQueryHubMessage CreatePong(long timestamp)
Parameters
timestamplongThe timestamp echoed from the original ping.
Returns
- ObservableQueryHubMessage
A populated ObservableQueryHubMessage.
CreateQueryResult(string, QueryResult)
Creates a QueryResult message.
public static ObservableQueryHubMessage CreateQueryResult(string queryId, QueryResult result)
Parameters
queryIdstringThe query identifier.
resultQueryResultThe query result payload.
Returns
- ObservableQueryHubMessage
A populated ObservableQueryHubMessage.
CreateQueryResult(string, QueryResult, long?)
Creates a revision-aware QueryResult message.
public static ObservableQueryHubMessage CreateQueryResult(string queryId, QueryResult result, long? revision)
Parameters
queryIdstringThe query identifier.
resultQueryResultThe query result payload.
revisionlong?The optional subscription revision.
Returns
- ObservableQueryHubMessage
A populated ObservableQueryHubMessage.
CreateUnauthorized(string)
Creates an Unauthorized message.
public static ObservableQueryHubMessage CreateUnauthorized(string queryId)
Parameters
queryIdstringThe query identifier.
Returns
- ObservableQueryHubMessage
A populated ObservableQueryHubMessage.
CreateUnauthorized(string, long?)
Creates a revision-aware Unauthorized message.
public static ObservableQueryHubMessage CreateUnauthorized(string queryId, long? revision)
Parameters
Returns
- ObservableQueryHubMessage
A populated ObservableQueryHubMessage.