I recently wrote a protocol I call RPEP (https://github.com/Tixit/RPEP), partially in response to the unfortunately named WAMP protocol. I'm looking for feedback as to whether the protocol is specified completely enough.
In particular, I'm wondering if my specification about connection establishment and closure is specific enough for implementers to know how to properly implement that section:
Implementations must provide some way for a peer to indicate that a connection
has been established and that the connection will be closed. One of two ways
of doing this must be available:
* Some transport-protocol-level message, or
* An RPEP "close" Fire and Forget message of the form ["close", closeData]
Implementations are required to use the implemented way of information the
other Peer of connection establishment. Implementations are, on the other
hand, NOT required to use the implemented way to inform the other Peer of
connection closure, ie it is allowed to drop a connection without informing
the other Peer. But to reiterate, a method of closure that does involve
informing the other Peer must be implemented.
Is that section specific enough for implementers?
Please keep your answers to the point of protocol completeness. If you have other comments, questions, or advice, feel free to create an issue on the github repository for it, rather than writing an answer or comment here.