You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-08-18 05:42:00 +03:00
Handle presence key in /sync
This commit is contained in:
18
lib/sync.js
18
lib/sync.js
@@ -150,7 +150,7 @@ SyncApi.prototype._sync = function(syncOptions, attempt) {
|
||||
// data looks like:
|
||||
// {
|
||||
// next_batch: $token,
|
||||
// presence: [PresencEvents],
|
||||
// presence: { events: [] },
|
||||
// rooms: {
|
||||
// invite: {
|
||||
// $roomid: {
|
||||
@@ -175,6 +175,22 @@ SyncApi.prototype._sync = function(syncOptions, attempt) {
|
||||
// }
|
||||
console.log("Got data %s", data);
|
||||
|
||||
// handle presence events (User objects)
|
||||
if (data.presence && utils.isArray(data.presence.events)) {
|
||||
data.presence.events.map(client.getEventMapper()).forEach(function(presenceEvent) {
|
||||
var user = client.store.getUser(presenceEvent.getSender());
|
||||
if (user) {
|
||||
user.setPresenceEvent(presenceEvent);
|
||||
}
|
||||
else {
|
||||
user = createNewUser(client, presenceEvent.getSender());
|
||||
user.setPresenceEvent(presenceEvent);
|
||||
client.store.storeUser(user);
|
||||
}
|
||||
client.emit("event", presenceEvent);
|
||||
});
|
||||
}
|
||||
|
||||
/*
|
||||
var i, j;
|
||||
// intercept the results and put them into our store
|
||||
|
Reference in New Issue
Block a user