LINUX.ORG.RU

libevent и comet-сервер


0

1

Всем вечер добрый.

Решили мы написать учебный comet сервер на C++ с плановой нагрузкой 1000+ соединений, приглянулся для этого libevent, статей нашлось немного, да и те на английском и не закончены: http://aleccolocco.blogspot.com/2008/10/gazillion-user-comet-server-with.html

Кто ни будь занимался чем то подобным? Или статьи может видел? Ну или вообще какие ни будь идеи?

Заранее спасибо :)

P.S. Да С++ не лучший вариант для этого, но важно писать именно на нём.

Ответ на: комментарий от archimag

Необходимо чтобы сервер мог сам инициализировать передачу данных клиенту. Как это организовать без флеша и сильверлайта(чур меня чур) кроме как commeto'м?

Ramzes001 ★★
() автор топика

comet это нечто что работает поверх http? если так, то на libevent это делается тривиально, ибо http сервер там уже встроен

Reset ★★★★★
()
Ответ на: комментарий от arhibot

Что то внутри меня ненавидеть вебсокеты...

Ramzes001 ★★
() автор топика
Ответ на: комментарий от yoghurt

Я в подробности не вникал. Но ну и что? Починят--поправят. А приложения пора писать уже сегодня :) Флэш вон тоже дырявый

arhibot
()
Ответ на: комментарий от Ramzes001

Если клиент правильный, то соединение у тебя не будет закрываться. В твой callback будет приходить request в котором поле evcon одно и то же. Напиши простой тест и сам всё увидишь. Например, можно в javascript'е по таймауту менять свойство src у img — картинки будут подгружаться через одно и то же соединение и ни один из современных браузеров не будет его закрывать. Пока ты сам его не закроешь или не пошлешь клиенту Connection: close.

А как сделать comet это уже другой вопрос. Если я правильно понимаю, сервер через уже установленное соединение в какие-то моменты сам инициирует запросы к клиенту. Поробуй для установленного соединения вызови make_request. Логично предположить, что работать будет, но надо проверять.

Reset ★★★★★
()
Ответ на: комментарий от Reset

Спасибо большое.

А где вообще можно почитать про libevent? На английском найти не проблема, а на русском всего пару статей получилось нагуглить..

Ramzes001 ★★
() автор топика
Ответ на: комментарий от Ramzes001

Я читаю рассылку + сорцы libevent'а. С нормальной английской документацией у него туго, а ты еще русскую хочешь ? :)

Reset ★★★★★
()
Ответ на: комментарий от Reset

Просто с английским тяжко.....

Ну да ладно есть повод учить :)))


P.S. Если всё получится, то обязательно напишу статью :)))

Ramzes001 ★★
() автор топика

почитай сорцы node.js оно на libevent вроде но на с++ точно :)

bga_ ★★★★
()
Ответ на: комментарий от Ramzes001

>сервер мог сам инициализировать передачу данных клиенту

comet


LOLWUT?

tensai_cirno ★★★★★
()
Ответ на: комментарий от yoghurt

Обнаружили критическую багу, которую везде поправили, и от греха подальше отключили в половине браузеров, до тех пор пока в w3c не дочешут стандарт. Как-то так.

tensai_cirno ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.