Mercurial > prosody-modules
comparison mod_smacks/README.md @ 5973:0afd0adbe050
Update mod_smacks status to obsolete - included in prosody
| author | Menel <menel@snikket.de> |
|---|---|
| date | Mon, 21 Oct 2024 21:50:58 +0200 |
| parents | mod_smacks/README.markdown@c5b1e9b8ccca |
| children | 5a65a632d5b9 |
comparison
equal
deleted
inserted
replaced
| 5972:51b6a10b50d2 | 5973:0afd0adbe050 |
|---|---|
| 1 --- | |
| 2 summary: 'XEP-0198: Reliability and fast reconnects for XMPP' | |
| 3 superseded_by: mod_csi | |
| 4 labels: | |
| 5 - 'Stage-Obsolete' | |
| 6 ... | |
| 7 | |
| 8 Since Prosody 0.12, this module is [included in Prosody](https://prosody.im/doc/modules/mod_smacks). | |
| 9 | |
| 10 #Introduction | |
| 11 | |
| 12 By default XMPP is as reliable as your network is. Unfortunately in some | |
| 13 cases that is not very reliable - in some network conditions disconnects | |
| 14 can be frequent and message loss can occur. | |
| 15 | |
| 16 To overcome this, XMPP has an optional extension (XEP-0198: Stream | |
| 17 Management) which, when supported by both the client and server, can | |
| 18 allow a client to resume a disconnected session, and prevent message | |
| 19 loss. | |
| 20 | |
| 21 #Details | |
| 22 | |
| 23 When using XEP-0198 both the client and the server keep a queue of the | |
| 24 most recently sent stanzas - this is cleared when the other end | |
| 25 acknowledges they have received the stanzas. If the client disconnects, | |
| 26 instead of marking the user offline the server pretends the client is | |
| 27 still online for a short (configurable) period of time. If the client | |
| 28 reconnects within this period, any stanzas in the queue that the client | |
| 29 did not receive are re-sent. | |
| 30 | |
| 31 If the client fails to reconnect before the timeout it will be marked as | |
| 32 offline like prosody does on disconnect without mod_smacks. | |
| 33 If the client is the last one for this jid, all message stanzas are added to | |
| 34 the offline store and all other stanzas stanzas are returned with an | |
| 35 "recipient-unavailable" error. If the client is not the last one with an | |
| 36 open smacks session, *all* stanzas are returned with an "recipient-unavailable" error. | |
| 37 | |
| 38 If you deliberately disabled [mod_offline], all message stanzas of the last client | |
| 39 are also returned with an "recipient-unavailable" error, because the can not be | |
| 40 added to the offline storage. | |
| 41 If you don't want this behaviour you can use [mod_nooffline_noerror] to suppress the error. | |
| 42 This is generally only advisable, if you are sure that all your clients are using MAM! | |
| 43 | |
| 44 This module also provides some events used by [mod_cloud_notify]. | |
| 45 These events are: "smacks-ack-delayed", "smacks-hibernation-start" and | |
| 46 "smacks-hibernation-end". See [mod_cloud_notify] for details on how this | |
| 47 events are used there. | |
| 48 | |
| 49 Use prosody 0.10+ to have per user limits on allowed sessions in hibernation | |
| 50 state and allowed sessions for which the h-value is kept even after the | |
| 51 hibernation timed out. | |
| 52 These are settable using `smacks_max_hibernated_sessions` and `smacks_max_old_sessions`. | |
| 53 | |
| 54 #Configuration | |
| 55 | |
| 56 Option Default Description | |
| 57 ---------------------------------- ----------------- ------------------------------------------------------------------------------------------------------------------ | |
| 58 `smacks_hibernation_time` 600 (10 minutes) The number of seconds a disconnected session should stay alive for (to allow reconnect) | |
| 59 `smacks_enabled_s2s` true Enable Stream Management on server connections? *Experimental* | |
| 60 `smacks_s2s_resend` false Attempt to re-send unacked messages on s2s disconnect *Experimental* | |
| 61 `smacks_max_unacked_stanzas` 0 How many stanzas to send before requesting acknowledgement | |
| 62 `smacks_max_ack_delay` 30 (1/2 minute) The number of seconds an ack must be unanswered to trigger an "smacks-ack-delayed" event | |
| 63 `smacks_max_hibernated_sessions` 10 The number of allowed sessions in hibernated state (limited per user) | |
| 64 `smacks_max_old_sessions` 10 The number of allowed sessions with timed out hibernation for which the h-value is still kept (limited per user) | |
| 65 | |
| 66 #Compatibility | |
| 67 | |
| 68 ------- ------- | |
| 69 trunk Works | |
| 70 0.11 Works | |
| 71 ------- ------- | |
| 72 | |
| 73 | |
| 74 #Clients | |
| 75 | |
| 76 Clients that support [XEP-0198]: | |
| 77 | |
| 78 - Gajim (Linux, Windows, OS X) | |
| 79 - Conversations (Android) | |
| 80 - ChatSecure (iOS) | |
| 81 - Swift (but not resumption, as of version 2.0 and alphas of 3.0) | |
| 82 - Psi (in an unreleased branch) | |
| 83 - Yaxim (Android) | |
| 84 - Monal (iOS) | |
| 85 | |
| 86 [7693724881b3]: //hg.prosody.im/prosody-modules/raw-file/7693724881b3/mod_smacks/mod_smacks.lua | |
| 87 [mod_offline]: //modules.prosody.im/mod_offline | |
| 88 [mod_nooffline_noerror]: //modules.prosody.im/mod_nooffline_noerror | |
| 89 [mod_cloud_notify]: //modules.prosody.im/mod_cloud_notify |
