Чат Ajax, опрашивающий эффективность пропускной способности

Вы можете использовать:

Console.SetCursorPosition();

, чтобы правильно установить положение.

Вроде так:

Console.Write("Hello : ");
for(int k = 0; k <= 100; k++){
    Console.SetCursorPosition(8, 0);
    Console.Write("{0}%", k);
    System.Threading.Thread.Sleep(50);
}

Console.Read();
7
задан Joel Coehoorn 1 December 2011 в 02:49
поделиться

5 ответов

Опрос может быть не лучшим решением для реализации чата - я бы посоветовал взглянуть на реализацию JQuery из COMET , которая сохраняет открытый соединение с клиентом и отправляет обновления с сервера «вниз», а также достаточно масштабируемый .

11
ответ дан 6 December 2019 в 11:50
поделиться

Я написал почти ТОЧНО одно и то же приложение для облегчения общения между друзьями на работе, когда различные работодатели используют драконовскую веб-фильтрацию.

Я обнаружил, что объем данных, передаваемых для этих запросов на опрос минимальна и редко приближается к 1 кб / с на пользователя, вошедшего в систему, обычно намного меньше, поскольку вы опрашиваете только 5 с.

Действительно ли пропускная способность является проблемой или вы преждевременно оптимизируете?

1
ответ дан 6 December 2019 в 11:50
поделиться

Я думаю, что для приложения чата вы можете использовать

Reverse Ajax

Reverse Ajax относится к дизайну Ajax шаблон, который использует долгоживущий HTTP подключения для обеспечения низкой задержки связь между веб-сервером и браузер. В основном это способ отправка данных от клиента к серверу и механизм для отправки данных сервера обратно в браузер. 1

Это соединение сервер-клиент занимает одна из двух форм:

 * Опрос клиента, клиент повторно запрашивает (опрашивает)

сервер и ждет ответа. * Server pushing, соединение между сервером и клиентом сохраняется открытый, сервер отправляет данные, когда доступно.

Reverse Ajax описывает реализация любого из этих модели или их комбинация. В шаблон проектирования также известен как Ajax Push, полнодуплексный Ajax и потоковая передача Ajax.

и

moo-comet

Request.Comet - это простой класс javascript для легкого создания кроссбраузерных приложений Comet (Reverse Ajax). Он обеспечивает передачу данных в реальном времени между клиентом и сервером и может использоваться с любым серверным языком.

4
ответ дан 6 December 2019 в 11:50
поделиться

В дополнение к ответу msparer, вот сообщение в блоге о скорости сообщений Comet и сравнительном анализе такой техники для приложения чата:

http://cometdaily.com/2008/10 / 30 / comet-apps-will-not-scale-equal /

0
ответ дан 6 December 2019 в 11:50
поделиться

If you decide not to go with the COMET approach, then I would do the same as you do, except if the queue contains several messages then they are sent all at once. This way you only poll exactly every 5 seconds and no more (and no less). Of course, with 100 people connected this still results in 20 requests per second, so you should try and optimize the server side in such a way that each request takes as little server resources (CPU/RAM/time) as possible. Caching is your friend here.

I wouldn't worry about bandwidth though because chat messages are usually very short and your requests would be tiny anyway.

1
ответ дан 6 December 2019 в 11:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: