Comments (5)
Conversations handles this pretty well in regards of de-duplication, synchronizing read status and so on.
For telepathy we'll need:
- Some way to get the last received message id from the logging daemon (or let gabble save it)
- XEP-0313 MAM for gabble
- XEP-0333 Chat Markers for gabble (#3)
- Proper read status support in clients (send and remove notifications for messages that had been read on other devices)
- Also it would be nice to let the logger also handle receive- and read status for each message
from telepathy-gabble.
IMO it will be conceptually right to implement logger in connection manager (because the logger needs to know more and more details to work properly, see also TelepathyIM/telepathy-spec#1)
Proper read status support in clients (send and remove notifications for messages that had been read on other devices)
My summary:
- Use MessageReceived on an other client message sent
- Use PendingMessagesRemoved on a message read by an other client
- Use the standard delivery interface for read status
I tried to use MessageSent for #1
and it turns out to be unsuitable for that. Also I realized, that a message sent by another client and then relayed by server is not different from a message sent by local client and relayed as a part of history (scrollback), so I recommend to use MessageSent only for messages sent by the local client.
from telepathy-gabble.
So far i was working only with qmlmessages/commhistd client implementation so was thinking should be sufficient just to emit Carbons/MAM messages with proper timestamp and flags on the normal text channel and they will be consumed and stored to history. And to trigger sync on a) connection apparently b) active state (that was my PoC idea). However yes now deduplication problem comes into picture as each MAM sync will potentially re-emit certain messages. and with Carbons the duplication almost inevitable (unless we make the properties mutually exclusive).
from telepathy-gabble.
- XEP-0363 MAM for gabble
Nit: The issue title is correct, this is XEP-0313, not XEP-0363.
from telepathy-gabble.
Nit: The issue title is correct, this is XEP-0313, not XEP-0363.
fixed, thx.
from telepathy-gabble.
Related Issues (14)
- GValueArray is deprecated HOT 1
- Build fails with openssl-1.1 HOT 2
- SCRAM-SHA-1(-PLUS) + SCRAM-SHA-256(-PLUS) supports HOT 1
- XEP-0443: XMPP Compliance Suites 2021
- Set silent flag for Sent carbons
- XEP-0198 SM Support
- coredump on connection destroy
- Implement XEP-0280: Message Carbons HOT 13
- XEP-0333 Chat Markers implementation HOT 3
- Assertion g_hash_table_foreach 'version == hash_table->version' failed HOT 1
- BUG: telepathy-gabble crashes when libsoup-3 is called by another plugin.
- XEP-0095 deprecated in favour of XEP-0234
- XEPs and RFCs support page with version
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from telepathy-gabble.