{"action":"created","issue":{"url":"https://api.github.com/repos/igniterealtime/Openfire/issues/259","labels_url":"https://api.github.com/repos/igniterealtime/Openfire/issues/259/labels{/name}","comments_url":"https://api.github.com/repos/igniterealtime/Openfire/issues/259/comments","events_url":"https://api.github.com/repos/igniterealtime/Openfire/issues/259/events","html_url":"https://github.com/igniterealtime/Openfire/pull/259","id":97080810,"number":259,"title":"Initial xep-0198 message ack implementation","user":{"login":"dwd","id":224104,"avatar_url":"https://avatars.githubusercontent.com/u/224104?v=3","gravatar_id":"","url":"https://api.github.com/users/dwd","html_url":"https://github.com/dwd","followers_url":"https://api.github.com/users/dwd/followers","following_url":"https://api.github.com/users/dwd/following{/other_user}","gists_url":"https://api.github.com/users/dwd/gists{/gist_id}","starred_url":"https://api.github.com/users/dwd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dwd/subscriptions","organizations_url":"https://api.github.com/users/dwd/orgs","repos_url":"https://api.github.com/users/dwd/repos","events_url":"https://api.github.com/users/dwd/events{/privacy}","received_events_url":"https://api.github.com/users/dwd/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-07-24T15:47:36Z","updated_at":"2015-07-24T18:23:22Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/igniterealtime/Openfire/pulls/259","html_url":"https://github.com/igniterealtime/Openfire/pull/259","diff_url":"https://github.com/igniterealtime/Openfire/pull/259.diff","patch_url":"https://github.com/igniterealtime/Openfire/pull/259.patch"},"body":"This patch adds a basic, non-resumable, XEP-0198 acking solution. It will\r\nredirect \"lost\" messages to offline storage, but does not attempt to suspend\r\nthe session, so will not allow any resumptions."},"comment":{"url":"https://api.github.com/repos/igniterealtime/Openfire/issues/comments/124608996","html_url":"https://github.com/igniterealtime/Openfire/pull/259#issuecomment-124608996","issue_url":"https://api.github.com/repos/igniterealtime/Openfire/issues/259","id":124608996,"user":{"login":"tevans","id":826423,"avatar_url":"https://avatars.githubusercontent.com/u/826423?v=3","gravatar_id":"","url":"https://api.github.com/users/tevans","html_url":"https://github.com/tevans","followers_url":"https://api.github.com/users/tevans/followers","following_url":"https://api.github.com/users/tevans/following{/other_user}","gists_url":"https://api.github.com/users/tevans/gists{/gist_id}","starred_url":"https://api.github.com/users/tevans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tevans/subscriptions","organizations_url":"https://api.github.com/users/tevans/orgs","repos_url":"https://api.github.com/users/tevans/repos","events_url":"https://api.github.com/users/tevans/events{/privacy}","received_events_url":"https://api.github.com/users/tevans/received_events","type":"User","site_admin":false},"created_at":"2015-07-24T18:23:22Z","updated_at":"2015-07-24T18:23:22Z","body":"Additional random thoughts:\r\n\r\nI've wondered about the merits of providing a configurable means for sending unsolicited acks from the server to the client (S2C) to save the client from sending `<r />` potentially for every request, depending on the client's tolerance for unacknowledged stanzas. For example:\r\n* We could add a server-side setting (global) to indicate the frequency of unsolicited S2C acks, default zero/disabled\r\n* Perhaps \"bend\" the spec to borrow/reuse the `max='n'` on the `<enable />` element attribute to negotiate a count/time limit for unsolicited S2C acks on a per-stream basis (since we do not support the resume capabilities)\r\n\r\nNote that none of this is intended to hold up or presume upon this PR, just providing some input in context."}}