6.3. 订阅接收通知

RESTCONF客户端可以通过发送带有“stream”列表条目的“location”叶的HTTP GET请求来确定订阅资源(接收通知)的URL。 服务器返回的值可以用于实际的通知订阅。

客户端将使用“Accept”类型的“text/event-stream”发送服务器返回的URLHTTP GET请求。

服务器将使用Server-Sent Events [W3C.REC-eventsource-20150203]传输策略将连接视为事件流。

服务器可以支持这个资源上GET方法的查询参数。 这些参数是特定于每个事件流。

例如:

客户端可能会发送以下请求:

  1. GET /restconf/data/ietf-restconf-monitoring:restconf-state/streams/stream=NETCONF/access=xml/location HTTP/1.1
  2. Host: example.com
  3. Accept: application/yang-data+xml

服务器可能会发送以下响应:

  1. HTTP/1.1 200 OK
  2. Content-Type: application/yang-data+xml
  3. <location xmlns="urn:ietf:params:xml:ns:yang:ietf-restconf-monitoring">
  4. https://example.com/streams/NETCONF
  5. </location>

RESTCONF客户端然后可以使用这个URL值开始监视事件流:

  1. GET /streams/NETCONF HTTP/1.1
  2. Host: example.com
  3. Accept: text/event-stream
  4. Cache-Control: no-cache
  5. Connection: keep-alive

RESTCONF客户端可以请求服务器使用HTTP头字段“Accept-Encoding”来压缩事件。 例如:

  1. GET /streams/NETCONF HTTP/1.1
  2. Host: example.com
  3. Accept: text/event-stream
  4. Cache-Control: no-cache
  5. Connection: keep-alive
  6. Accept-Encoding: gzip, deflate