On Thu, Aug 11, 2011 at 2:28 AM, XMPP Extensions Editor <edi...@xmpp.org> wrote: > The XMPP Extensions Editor has received a proposal for a new XEP. > > Title: XMPP Quickstart > > Abstract: This document defines methods for speeding the process of > connecting or reconnecting to an XMPP. > > URL: http://www.xmpp.org/extensions/inbox/quickstart.html > > The XMPP Council will decide at its next meeting whether to accept this > proposal as an official XEP. > >
Example 1 doesn't take things to their logical extreme. STEP 1 can be merged with the TLS ClientHello message. STEP 4 can be merged with the server's TLS Finished message. STEP 5 can be merged with the client's TLS Finished message. STEP 9 can be merged with STEP 7. If the server handles it just right, STEP 8 and 10 could be merged into one TCP packet (in response to 7+9). If you are not negotiating TLS in the middle, you can start a stream, do PLAIN or ANONYMOUS login, request roster, set presence, join a chatroom, and send messages, all in the first TCP packet. This makes legacy SSL somewhat attractive. The same can be done with BOSH, if you skip the stream restart on SASL (which virtually all existing clients do?). Moving on... Does the client even need to pay attention to the pipelining stream feature? When connecting to any server, it can first attempt to use full pipelining. If that fails, it can simply reconnect without pipelining. It can cache the failures. It would need to do this even if the server indicates it can support pipelining, as the server may be lying/buggy and e.g., might not support merging TLS negotiation and XMPP data in the same TCP packet. Looking at Example 1 closely, the client pipelined <starttls/> before looking at the stream feature, so what's the stream feature for? Is the client expected to not pipeline unless it has seen the feature in a previous connection to the host? Why? Given that the failure case is harmless, and that pipelining might work on many existing servers, why wouldn't it want to use it on first connect? Would using it violate any specification? -- Waqas Hussain