tigase / siskin-im

(M) Public Project of Tigase Messenger for iOS devices based on Tigase Swift XMPP library.
GNU General Public License v3.0
173 stars 37 forks source link

double notifications #213

Open nanopone opened 1 year ago

nanopone commented 1 year ago

Describe the bug when receiving a message, i get the notification for it, but also a generic "New message!" notification alongside it

To Reproduce Steps to reproduce the behavior:

  1. have notifications turned on
  2. receive a message

Expected behavior i only expect to receive one notification for each message

Screenshots B29C3011-EDF2-4D69-A367-F9A70949920E

Details (please complete the following information):

hantu85 commented 1 year ago

Siskin does not generate push notifications for incoming messages when the client is in the background (disconnected). Those notifications are generated by your XMPP server and Siskin just displays them. Notifications that are generic "New message!" do not contain any message but are sent by your XMPP server. If your server sends notifications with content/message, then the proper message is displayed.

We are aware that some XMPP servers send notifications for any incoming XMPP stanza or message (even if there is no body in the message), but that is in our opinion violation of the XEP-0357: Push Notifications and should be solved on the server side.

In future versions we may decide to filter notifications on the client side, however, I do not think this is how it should be done.

t0maz commented 3 weeks ago

The issue is still there. No such problem with Monal client. The problem is even more important as after opening Siskin and reading the new message in the chat the „New message!” notification do not disappears like the one with message content. This cause that Siskin app keep red counter with number of unreaded chats/messages while there is no more unreaded ones in the app. This confuse users very much. To get rid this bogus counter of unreaded chats the system notification have to be cleared manually in the iOS notifications. I do really hope it can be fixed in future release as it’s hard to teach / explain to non techy users how to workaround it. Thanks!

hantu85 commented 2 weeks ago

Some XMPP servers do not send message body nor any other identifiers allowing us to match received notification to the message received later on when app reconnects to the XMPP server. Due to the approach chosen by us, to not reconnect to the server to fetch all remaining messages on each received push notification, it is impossible to fix this issue.

The solution is to use a different XMPP server that supports sending additional details (ie. in encrypted form). According to my knowledge it is possible with Tigase XMPP Server and with Prosody.

t0maz commented 2 weeks ago

Many thanks for clarification. That’s great news! We do use latest release of Prosody server 0.12.4. Can you please tell what needs to be changed in server configuration to avoid bogus/empty push notifications with Siskin client or where such information can be found? Thank you

hantu85 commented 2 weeks ago

If I recall correctly, https://modules.prosody.im/mod_cloud_notify_encrypted needs to be configured and enabled.