клиент проверяет наличие новых данных с помощью httprequest - PullRequest
0 голосов
/ 27 апреля 2018

В настоящее время я работаю над проектом чата для школы, в котором два клиента могут отправлять сообщения через http-сервер. Я уже могу отправлять POST-запросы с помощью сообщения чата, и сервер сохраняет его.

Моя проблема сейчас в том, что клиент должен знать, доступны ли новые сообщения чата. Я пытался сделать это так:

private void checkChat()
{
    String url = "http://"+serverip+":"+serverport+"/requests";
    while(verbunden==true)
    {
        try
        {
            URL requrl = new URL(url);
            HttpURLConnection con = (HttpURLConnection) requrl.openConnection();

            con.setRequestMethod("GET");

            BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();
            while ((inputLine = in.readLine()) != null) 
            {
                    response.append(inputLine);
            }
            in.close();
            gui.writeChat(response.toString());
        }
        catch(Exception ex)
        {

        }

    }
}

но когда вызывается метод, программа больше не работает, потому что я думаю, что сервер залит.

Итак, мой вопрос сейчас: как я могу проверить новые сообщения чата с сервера? Мне нужно использовать httprequests для этого, но я не знаю, как.

1 Ответ

0 голосов
/ 27 апреля 2018

Сначала вы отправляете этот запрос в цикле:

while(verbunden==true)

Но вы не написали ни одной паузы, поэтому, как только ответ получен, следующий запрос отправляется, это означает, вероятно, 100 запросов в секунду (в зависимости от времени ответа).

Просто добавьте Thread.sleep(5000 /*5000ms*/); в цикл, чтобы добавить небольшой разрыв.

PS: вы могли бы использовать два Socket для связи между сервером и клиентом, чтобы сервер мог информировать клиента о новом сообщении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...