forked from MirrorHub/synapse
Only return new device messages in /sync
This commit is contained in:
parent
2aa39db681
commit
65fa37ac5e
2 changed files with 6 additions and 4 deletions
|
@ -576,7 +576,7 @@ class SyncHandler(object):
|
|||
|
||||
logger.debug("Getting messages up to %d", now_token.to_device_key)
|
||||
messages, stream_id = yield self.store.get_new_messages_for_device(
|
||||
user_id, device_id, now_token.to_device_key
|
||||
user_id, device_id, since_stream_id, now_token.to_device_key
|
||||
)
|
||||
logger.debug("Got messages up to %d: %r", stream_id, messages)
|
||||
sync_result_builder.now_token = now_token.copy_and_replace(
|
||||
|
|
|
@ -85,7 +85,7 @@ class DeviceInboxStore(SQLBaseStore):
|
|||
defer.returnValue(self._device_inbox_id_gen.get_current_token())
|
||||
|
||||
def get_new_messages_for_device(
|
||||
self, user_id, device_id, current_stream_id, limit=100
|
||||
self, user_id, device_id, last_stream_id, current_stream_id, limit=100
|
||||
):
|
||||
"""
|
||||
Args:
|
||||
|
@ -101,11 +101,13 @@ class DeviceInboxStore(SQLBaseStore):
|
|||
sql = (
|
||||
"SELECT stream_id, message_json FROM device_inbox"
|
||||
" WHERE user_id = ? AND device_id = ?"
|
||||
" AND stream_id <= ?"
|
||||
" AND ? < stream_id AND stream_id <= ?"
|
||||
" ORDER BY stream_id ASC"
|
||||
" LIMIT ?"
|
||||
)
|
||||
txn.execute(sql, (user_id, device_id, current_stream_id, limit))
|
||||
txn.execute(sql, (
|
||||
user_id, device_id, last_stream_id, current_stream_id, limit
|
||||
))
|
||||
messages = []
|
||||
for row in txn.fetchall():
|
||||
stream_pos = row[0]
|
||||
|
|
Loading…
Reference in a new issue