Как зайти в Даркнет?!
25th January, 01:11
8
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
901
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
952
0
Очень долго работает Update запрос Oracle
27th January, 09:58
916
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
907
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
942
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1727
0
период по дням
25th October, 10:44
3957
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3722
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4614
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4382
0
Помогите пожалуйста решить задачи
24th November, 23:53
6089
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4352
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4401
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Есть ли какой-то способ передать данные PUSH с веб-сервера в браузер?
Конечно, я знаю о Ajax, но проблема с Ajax заключается в том, что браузер должен часто опрашивать сервер, чтобы узнать, есть ли новые данные. Это увеличивает нагрузку на сервер.
Есть ли какой-либо лучший метод (даже с использованием Ajax), кроме частого опроса сервера?
Да, то, что вы ищете-это COMET http://en.wikipedia.org/wiki/Comet_(Программирование) . Другие хорошие условия использования Google для поиска AJAX-толчка и обратного-ajax.
Да, это называется обратный Ajax или комета . Comet-это в основном зонтичный термин для различных способов открытия долгоживущих запросов HTTP для передачи данных в реальном времени в веб-браузер. Я бы рекомендовал StreamHub Push Server , у них есть несколько классных демо-версий, и с ними гораздо проще начать работу, чем с любым другим сервером. Ознакомьтесь с руководством по началу работы с Comet и StreamHub для быстрого введения. Вы можете использовать выпуск Community Edition, который доступен для бесплатной загрузки, но ограничен 20 одновременными пользователями. Коммерческая версия хорошо стоит только для поддержки, плюс вы получаете SSL и Desktop .NET & Java клиентских адаптеров. Помощь доступна через группу Google, есть хорошая куча учебников в сети, а также адаптер GWT Comet .
В настоящее время вы должны использовать WebSockets. Это стандарт 2011 года, который позволяет инициировать соединения с HTTP и затем обновить их до двухнаправленного обмена сообщениями между клиентом и сервером.
Вы можете легко инициировать соединение с javascript:
var ws = new WebSocket("ws://your.domain.com/somePathIfYouNeed?args=any");
ws.onmessage = function (evt)
{
var message = evt.data;
//decode message (with JSON or something) and do the needed
};
Обработка на стороне разъединения зависит от вашего стека tenchnology.
Посмотрите на Comet (пародия на то, что Ajax является чистящим средством и поэтому является Comet), который в основном "reverse Ajax." знает, что это требует длительного подключения к серверу для каждого пользователя, чтобы получать уведомления, поэтому будьте в курсе последствий производительности при написании вашего приложения.
http://en.wikipedia.org/wiki/Comet_ (Программирование)
Комета-это определенно то, что вы хотите. В зависимости от ваших требований к языку и фреймворку доступны различные серверные библиотеки. Например, WebSync-это IIS-интегрированный сервер comet для разработчиков ASP.NET/C#/IIS, а также есть куча других автономных серверов, если вам нужна более тесная интеграция с другими языками.
Я бы настоятельно рекомендовал потратить некоторое время на Comet, но я не знаю реальной реализации или библиотеки, которую вы могли бы использовать.
Для своего рода "callcenter control panel" веб-приложения, которое включало агент обновления и статус Очереди вызовов для живого центра обработки вызовов, мы разработали собственное решение, которое работает, но находится далеко от библиотеки, которую вы могли бы использовать.
Что мы сделали, так это внедрили небольшой сервис на сервере, который разговаривает с телефонной системой, ждет новых событий и поддерживает фотографию ситуации. Эта услуга предоставляет небольшой webserver.
Наши веб-клиенты подключаются через HTTP к этому webserver и запрашивают последнюю фотографию (закодированную в XML), отображают ее и затем снова идут, запрашивая новую фотографию. webserver в этот момент может:
- Верните новую фотографию, если она есть
- Заблокируйте клиента на несколько секунд (30 в нашей настройке), ожидая какого-то события для ocurr и изменения фотографии. Если в этот момент не было сгенерировано ни одного события, он возвращает ту же фотографию, но только для того, чтобы соединение оставалось живым и не требовало тайм-аута клиента.
Таким образом, при опросе клиентов он получает ответ максимум за 0-30 секунд. Если новое событие уже было сгенерировано, оно получает его немедленно), в противном случае оно блокируется до тех пор, пока не будет сгенерировано новое событие.
Это в основном опрос, но это несколько умный опрос, чтобы не перегревать webserver. Если комета не является вашим ответом, я уверен, что это может быть реализовано с использованием той же идеи, но с более широким использованием AJAX или кодированием в JSON для получения лучших результатов. Это было разработано до эпохи AJAX, так что есть много возможностей для улучшения.
Если кто-то может обеспечить фактическую легкую реализацию этого, отлично!
Еще один, стандартный, способ - это SSE (серверные события, также известные как EventSource, после объекта JavaScript).
Комета была фактически придумана Алексом Расселом из Dojo Toolkit ( http://www.dojotoolkit.org ). Вот ссылка на дополнительную информацию http://cometdproject.dojotoolkit.org/
Возможно, стоит проверить Meteor Server , который является веб-сервером, предназначенным для COMET. Хорошая демо -версия, и она также используется twitterfall .
Есть и другие методы. Не уверен, что они "better" в вашей ситуации. У вас может быть Java applet, который подключается к серверу при загрузке страницы и ждет отправки материала сервером. Это было бы совсем немного медленнее при запуске, но позволило бы браузеру получать данные с сервера нечасто, без опроса.
Можно достичь того, к чему вы стремитесь, используя постоянные соединения http.
Посмотрите статью о комете в Википедии, это хорошее место для начала.
Вы не предоставляете много информации, но если вы смотрите на создание какого-то событийного сайта (a'La digg spy) или что-то в этом роде, вы, вероятно, будете смотреть на реализацию скрытого IFRAME, который соединяется с url, где соединение никогда не закрывается, а затем вы будете передавать теги сценариев с сервера на клиент для выполнения обновлений.
Как только соединение открыто к серверу, его можно держать открытым, и сервер может толкать содержимое уже давно я сделал это с помощью multipart/x-mixed-replace , но это не сработало в IE.
Я думаю, что вы можете сделать умные вещи с опросом, который делает его более похожим на push, не отправляя содержимое неизмененных заголовков, но оставляя соединение открытым, но я никогда этого не делал.
пожалуйста, проверьте эту библиотеку https://github.com/SignalR/SignalR , чтобы узнать, как динамически передавать данные клиентам, когда они становятся доступными