xmlstream.disconnect: add compat behaviour, set wait to default 2.0
when True is passed. Update documentation
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This commit is contained in:
parent
2638ba2744
commit
4435c81d77
2 changed files with 14 additions and 7 deletions
|
@ -47,11 +47,11 @@ the roster. Next, we want to send our message, and to do that we will use :meth:
|
|||
self.send_message(mto=self.recipient, mbody=self.msg)
|
||||
|
||||
Finally, we need to disconnect the client using :meth:`disconnect <slixmpp.xmlstream.XMLStream.disconnect>`.
|
||||
Now, sent stanzas are placed in a queue to pass them to the send thread. If we were to call
|
||||
:meth:`disconnect <slixmpp.xmlstream.XMLStream.disconnect>` without any parameters, then it is possible
|
||||
for the client to disconnect before the send queue is processed and the message is actually
|
||||
sent on the wire. To ensure that our message is processed, we use
|
||||
:meth:`disconnect(wait=True) <slixmpp.xmlstream.XMLStream.disconnect>`.
|
||||
Now, sent stanzas are placed in a queue to pass them to the send thread.
|
||||
:meth:`disconnect <slixmpp.xmlstream.XMLStream.disconnect>` by default will wait for an
|
||||
acknowledgement from the server for at least `2.0` seconds. This time is configurable with
|
||||
the `wait` parameter. If `0.0` is passed for `wait`, :meth:`disconnect
|
||||
<slixmpp.xmlstream.XMLStream.disconnect>` will not close the connection gracefully.
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
|
@ -61,12 +61,12 @@ sent on the wire. To ensure that our message is processed, we use
|
|||
|
||||
self.send_message(mto=self.recipient, mbody=self.msg)
|
||||
|
||||
self.disconnect(wait=True)
|
||||
self.disconnect()
|
||||
|
||||
.. warning::
|
||||
|
||||
If you happen to be adding stanzas to the send queue faster than the send thread
|
||||
can process them, then :meth:`disconnect(wait=True) <slixmpp.xmlstream.XMLStream.disconnect>`
|
||||
can process them, then :meth:`disconnect() <slixmpp.xmlstream.XMLStream.disconnect>`
|
||||
will block and not disconnect.
|
||||
|
||||
Final Product
|
||||
|
|
|
@ -478,6 +478,13 @@ class XMLStream(asyncio.BaseProtocol):
|
|||
:param wait: Time to wait for a response from the server.
|
||||
|
||||
"""
|
||||
# Compat: docs/getting_started/sendlogout.rst has been promoting
|
||||
# `disconnect(wait=True)` for ages. This doesn't mean anything to the
|
||||
# schedule call below. It would fortunately be converted to `1` later
|
||||
# down the call chain. Praise the implicit casts lord.
|
||||
if wait == True:
|
||||
wait = 2.0
|
||||
|
||||
self.disconnect_reason = reason
|
||||
self.cancel_connection_attempt()
|
||||
if self.transport:
|
||||
|
|
Loading…
Reference in a new issue