Skip to content

Commit 7a29a84

Browse files
Merge pull request #288303 from phanthaiduong22/dphan/ping-pong
[Web PubSub] Adding new Ping/Pong protocol
2 parents a6d06b6 + 9a9167a commit 7a29a84

6 files changed

+75
-7
lines changed

articles/azure-web-pubsub/includes/reference-json-requests.md

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -272,4 +272,16 @@ binary
272272

273273
The `Content-Type` for the CloudEvents HTTP request is `application/octet-stream` when `dataType` is `binary`. The WebSocket frame can be `text` format for text message frames or UTF8 encoded binaries for `binary` message frames.
274274

275-
The Web PubSub service declines the client if the message doesn't match the described format.
275+
The Web PubSub service declines the client if the message doesn't match the described format.
276+
277+
### Ping
278+
279+
Format:
280+
281+
```json
282+
{
283+
"type": "ping",
284+
}
285+
```
286+
287+
The client can send a `ping` message to the service to enable the Web PubSub service to detect the client's liveness.

articles/azure-web-pubsub/includes/reference-protobuf-requests.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,3 +244,8 @@ ce-eventName: <event_name>
244244
For `dataType`=`binary`, the `Content-Type` for the CloudEvents HTTP request is `application/octet-stream`. The WebSocket frame can be in `text` format for text message frames or UTF-8-encoded binaries for `binary` message frames.
245245

246246
The service declines the client if the message doesn't match the prescribed format.
247+
248+
### Ping
249+
250+
The client can send a `PingMessage` to the service to enable the Web PubSub service to detect the client's liveness.
251+

articles/azure-web-pubsub/reference-json-reliable-webpubsub-subprotocol.md

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Reliable PubSub WebSocket client must send a sequence ack message once it receiv
6060

6161
## Responses
6262

63-
Messages received by the client can be several types: `ack`, `message`, and `system`. Messages with type `message` have `sequenceId` property. Client must send a [Sequence Ack](#sequence-ack) to the service once it receives a message.
63+
Messages received by the client can be several types: `ack`, `message`, `system`, and `pong`. Messages with type `message` have `sequenceId` property. Client must send a [Sequence Ack](#sequence-ack) to the service once it receives a message.
6464

6565
### Ack response
6666

@@ -162,7 +162,19 @@ If the REST API is sending a string `Hello World` using `application/json` conte
162162

163163
### System response
164164

165-
The Web PubSub service can return system-related responses to the client.
165+
The Web PubSub service can return system-related responses to the client.
166+
167+
### Pong response
168+
169+
The Web PubSub service sends a `pong` message to the client when it receives a `ping` message from the client.
170+
171+
Format:
172+
173+
```json
174+
{
175+
"type": "pong",
176+
}
177+
```
166178

167179
#### Connected
168180

articles/azure-web-pubsub/reference-json-webpubsub-subprotocol.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ Message types received by the client can be:
4545
* ack - The response to a request containing an `ackId`.
4646
* message - Messages from the group or server.
4747
* system - Messages from the Web PubSub service.
48+
* pong - The response to a `ping` message.
4849

4950
### Ack response
5051

@@ -142,7 +143,19 @@ If the REST API is sending a string `Hello World` using `application/json` conte
142143

143144
### System response
144145

145-
The Web PubSub service sends system-related messages to clients.
146+
The Web PubSub service sends system-related messages to clients.
147+
148+
### Pong response
149+
150+
The Web PubSub service sends a `pong` message to the client when it receives a `ping` message from the client.
151+
152+
Format:
153+
154+
```json
155+
{
156+
"type": "pong",
157+
}
158+
```
146159

147160
#### Connected
148161

articles/azure-web-pubsub/reference-protobuf-reliable-webpubsub-subprotocol.md

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ message UpstreamMessage {
4747
EventMessage event_message = 5;
4848
JoinGroupMessage join_group_message = 6;
4949
LeaveGroupMessage leave_group_message = 7;
50+
SequenceAckMessage sequence_ack_message = 8;
51+
PingMessage ping_message = 9;
5052
}
5153
5254
message SendToGroupMessage {
@@ -75,6 +77,9 @@ message UpstreamMessage {
7577
message SequenceAckMessage {
7678
uint64 sequence_id = 1;
7779
}
80+
81+
message PingMessage {
82+
}
7883
}
7984
8085
message MessageData {
@@ -104,6 +109,7 @@ message DownstreamMessage {
104109
AckMessage ack_message = 1;
105110
DataMessage data_message = 2;
106111
SystemMessage system_message = 3;
112+
PongMessage pong_message = 4;
107113
}
108114
109115
message AckMessage {
@@ -140,6 +146,9 @@ message DownstreamMessage {
140146
string reason = 2;
141147
}
142148
}
149+
150+
message PongMessage {
151+
}
143152
}
144153
```
145154

@@ -170,7 +179,11 @@ The sender's `dataType` will cause one of the following messages to be sent:
170179

171180
### System response
172181

173-
The Web PubSub service can also send system-related responses to the client.
182+
The Web PubSub service can also send system-related responses to the client.
183+
184+
### Pong response
185+
186+
The Web PubSub service sends a `PongMessage` to the client when it receives a `PingMessage` from the client.
174187

175188
#### Connected
176189

articles/azure-web-pubsub/reference-protobuf-webpubsub-subprotocol.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ message UpstreamMessage {
4747
EventMessage event_message = 5;
4848
JoinGroupMessage join_group_message = 6;
4949
LeaveGroupMessage leave_group_message = 7;
50+
SequenceAckMessage sequence_ack_message = 8;
51+
PingMessage ping_message = 9;
5052
}
5153
5254
message SendToGroupMessage {
@@ -70,6 +72,9 @@ message UpstreamMessage {
7072
string group = 1;
7173
optional uint64 ack_id = 2;
7274
}
75+
76+
message PingMessage {
77+
}
7378
}
7479
7580
message MessageData {
@@ -93,6 +98,7 @@ message DownstreamMessage {
9398
AckMessage ack_message = 1;
9499
DataMessage data_message = 2;
95100
SystemMessage system_message = 3;
101+
PongMessage pong_message = 4;
96102
}
97103
98104
message AckMessage {
@@ -127,10 +133,13 @@ message DownstreamMessage {
127133
string reason = 2;
128134
}
129135
}
136+
137+
message PongMessage {
138+
}
130139
}
131140
```
132141

133-
Messages received by the client can be in any of three types: `ack`, `message`, or `system`.
142+
Messages received by the client can be in any of three types: `ack`, `message`, `system` or `pong`.
134143

135144
### Ack response
136145

@@ -157,7 +166,7 @@ The sender's `dataType` will cause one of the following messages to be sent:
157166

158167
### System response
159168

160-
The Web PubSub service can also send system-related responses to the client.
169+
The Web PubSub service can also send system-related responses to the client.
161170

162171
#### Connected
163172

@@ -167,6 +176,10 @@ When the client connects to the service, you receive a `DownstreamMessage.System
167176

168177
When the server closes the connection or the service declines the client, you receive a `DownstreamMessage.SystemMessage.DisconnectedMessage` message.
169178

179+
### Pong response
180+
181+
The Web PubSub service sends a `PongMessage` to the client when it receives a `PingMessage` from the client.
182+
170183
## Next steps
171184

172185
[!INCLUDE [next step](includes/include-next-step.md)]

0 commit comments

Comments
 (0)