plugin: Only move message cursor in response to retrieveMessages

This commit is contained in:
Lucien Greathouse
2019-10-04 11:13:10 -07:00
parent ece454e6dd
commit 5b57025b0b
2 changed files with 8 additions and 6 deletions

View File

@@ -131,13 +131,15 @@ function ApiContext:read(ids)
return Promise.reject("Server changed ID")
end
self.messageCursor = body.messageCursor
return body
end)
end
function ApiContext:retrieveMessages()
function ApiContext:retrieveMessages(initialCursor)
if initialCursor ~= nil then
self.messageCursor = initialCursor
end
local url = ("%s/api/subscribe/%s"):format(self.baseUrl, self.messageCursor)
local function sendRequest()

View File

@@ -33,7 +33,7 @@ function Session.new(config)
end
self.reconciler:reconcile(response.instances, api.rootInstanceId, game)
return self:__processMessages()
return self:__processMessages(response.messageCursor)
end)
:catch(function(message)
self.disconnected = true
@@ -43,12 +43,12 @@ function Session.new(config)
return not self.disconnected, setmetatable(self, Session)
end
function Session:__processMessages()
function Session:__processMessages(initialCursor)
if self.disconnected then
return Promise.resolve()
end
return self.api:retrieveMessages()
return self.api:retrieveMessages(initialCursor)
:andThen(function(messages)
local promise = Promise.resolve(nil)