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.