Explicitly state that CLOSE only cancels subscription after EOSE

This commit is contained in:
Mado 2025-03-14 20:41:45 +09:00
parent 0619f370bc
commit f31b2f2744
No known key found for this signature in database

2
01.md
View File

@ -132,7 +132,7 @@ Clients can send 3 types of messages, which must be JSON arrays, according to th
}
```
Upon receiving a `REQ` message, the relay SHOULD return events that match the filter. Any new events it receives SHOULD be sent to that same websocket until the connection is closed, a `CLOSE` event is received with the same `<subscription_id>`, or a new `REQ` is sent using the same `<subscription_id>` (in which case a new subscription is created, replacing the old one).
Upon receiving a `REQ` message, the relay SHOULD return events that match the filter. Any new events it receives SHOULD be sent to that same websocket until the connection is closed, a `CLOSE` event is received with the same `<subscription_id>`, or a new `REQ` is sent using the same `<subscription_id>` (in which case a new subscription is created, replacing the old one). The `CLOSE` message or `REQ` with the same `<subscription_id>` cancels only the subscription after the `EOSE` message and does not cancel the initial query or the `EOSE` message.
Filter attributes containing lists (`ids`, `authors`, `kinds` and tag filters like `#e`) are JSON arrays with one or more values. At least one of the arrays' values must match the relevant field in an event for the condition to be considered a match. For scalar event attributes such as `authors` and `kind`, the attribute from the event must be contained in the filter list. In the case of tag attributes such as `#e`, for which an event may have multiple values, the event and filter condition values must have at least one item in common.