Projects tigase _server server-core Issues #268
Make sure PubSub notifications are delivered to offline users (#268)
Closed
Artur Hefczyc opened 1 decade ago
  1. There seems to be a pubsub node config option to deliver notifications to either online only or all subscribers, so we need to check it if it works

  2. Second thing is we need to check whether pubsub notifications are saved in DB for offline users and is delivered when user comes online

wojciech.kapcia@tigase.net commented 1 decade ago
  • I verified that configuration option does work;

  • Storing messages for offline subscribers did not work.

Following changes were made:

  • corrected PubSub presence subscription handling to allow easier addition of PubSub component to the roster thus allowing it to receive presence;

  • and issue with ad-hoc script CreateNode.groovy was fixed which prevent setting node configuration correctly (basically a default was used despite making any changes to the form);

  • OfflineMessages plugin was changed that it would not ignore <message/> stanza that does not contains non-empty body (i.e. accepting also <event/> or <header/> children); however, sidenote: as per XEP-0160: Best Practices for Handling Offline Messages - there is no mention that plugin should differentiate saving or not saving based on presence of absence of child elements.

Artur Hefczyc commented 1 decade ago

Wojciech Kapcia wrote:

  • I verified that configuration option does work;
  • Storing messages for offline subscribers did not work.

Following changes were made:

  • corrected PubSub presence subscription handling to allow easier addition of PubSub component to the roster thus allowing it to receive presence;

Ok, sounds good. However, as far as I know this particular feature is used right now only by customers with a custom client software. They do not add pubsub to the roster, they, however, send a direct presence to PubSub component as part of their login procedure.

  • and issue with ad-hoc script CreateNode.groovy was fixed which prevent setting node configuration correctly (basically a default was used despite making any changes to the form);

Oh, well done.

  • OfflineMessages plugin was changed that it would not ignore <message/> stanza that does not contains non-empty body (i.e. accepting also <event/> or <header/> children); however, sidenote: as per XEP-0160: Best Practices for Handling Offline Messages - there is no mention that plugin should differentiate saving or not saving based on presence of absence of child elements.

Yes, however, we really do not want to save to offline storage all the user's events such as "user starts typing a message", "user left chat window", etc..... So my logic to ignore messages with an empty body was to avoid storing messages which are useless for offline users. Please make sure we do not store such messages.

wojciech.kapcia@tigase.net commented 1 decade ago

Artur Hefczyc wrote:

Ok, sounds good. However, as far as I know this particular feature is used right now only by customers with a custom client software. They do not add pubsub to the roster, they, however, send a direct presence to PubSub component as part of their login procedure.

Understood. However handling of presence subscription was already there, but wasn't working (most likely due to recent changes in Tigase and requirement of correct xmlns attribute) so it was a small fix only.

Yes, however, we really do not want to save to offline storage all the user's events such as "user starts typing a message", "user left chat window", etc..... So my logic to ignore messages with an empty body was to avoid storing messages which are useless for offline users. Please make sure we do not store such messages.

Logic implemented by you was preserved, only condition to store pubsub messages was added.

Artur Hefczyc commented 1 decade ago

Perfect, thank you

issue 1 of 1
Type
Task
Priority
Critical
Assignee
RedmineID
1664
Version
tigase-server-5.2.0
Spent time
138h
Issue Votes (0)
Watchers (0)
Reference
tigase/_server/server-core#268
Please wait...
Page is in error, reload to recover