From 404971ce764503576ebd2d6fde39e9e5b94afbcd Mon Sep 17 00:00:00 2001 From: mrbesen Date: Mon, 25 Feb 2019 15:59:36 +0100 Subject: [PATCH] improved long polling --- .../java/de/mrbesen/telegram/TelegramAPI.java | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/mrbesen/telegram/TelegramAPI.java b/src/main/java/de/mrbesen/telegram/TelegramAPI.java index d95593e..4cfcfc6 100644 --- a/src/main/java/de/mrbesen/telegram/TelegramAPI.java +++ b/src/main/java/de/mrbesen/telegram/TelegramAPI.java @@ -228,16 +228,23 @@ public class TelegramAPI implements Runnable { @Override public void run() { start = System.currentTimeMillis(); - while(run) { - long runstart = System.currentTimeMillis(); - fetchUpdates(); - fetchedUpdates++; - try { - int wait = (int) (updateInterval - (System.currentTimeMillis() - runstart)); - if(wait > 0) - Thread.sleep(wait); - } catch (InterruptedException e) { - break; + if(longpolling) { + while(run) { + fetchUpdates(); + fetchedUpdates++; + } + } else { + while(run) { + long runstart = System.currentTimeMillis(); + fetchUpdates(); + fetchedUpdates++; + try { + int wait = (int) (updateInterval - (System.currentTimeMillis() - runstart)); + if(wait > 0) + Thread.sleep(wait); + } catch (InterruptedException e) { + break; + } } } } @@ -248,7 +255,7 @@ public class TelegramAPI implements Runnable { private void fetchUpdates() { try { - processUpdates(request("getUpdates", "offset=" + msg_offset + "&timeout=" + (longpolling ? updateInterval : 1), true)); + processUpdates(request("getUpdates", "offset=" + msg_offset + "&timeout=" + (longpolling ? updateInterval : 1), false)); } catch (IOException e) { log.log("error getting updates.", e); }