[BEEPbuilders] questions about session release and channel close
cocoa at gmx.ch
Sun Oct 22 22:33:09 PDT 2006
I am currently implementing a BEEP library in Java for the
collaborative text editor ACE (http://ace.sourceforge.net/). The
library will (in its first version) be intentionally simple. Now, I
have several questions about the BEEP specification.
The first question concerns the session release. RFC 3080 is pretty
specific about closing channels (section 18.104.22.168), but few guidelines
are given for session shutdown (section 2.4). A BEEP library could
disallow closing the session when there are still open channels.
Then, releasing the session would be nothing else than closing
channel 0 and then dropping the connection. This seems reasonable to
me, but is that how it is meant to be? And how should a BEEP library
behave when it receives a close for channel 0 when there are still
other open channels? Should it send an error element in a negative
reply, thus denying the close of the session? How do existing BEEP
frameworks handle this situation?
The second question is about closing channels. How should the
following situation be handled? If both BEEP peers decide at about
the same time to close a given channel, then it could happen that the
two close messages cross in transit. How should this situation be
dealt with? Intersting effects could arise if one party accepts the
request and the other declines the other request to close the session.
I'm interested to hear from builders of existing BEEP frameworks how
the above two situations are handled and I'd really like to hear how
this was intended from the author(s) of RFC 3080.
More information about the BEEPbuilders