2009-09-15 5 views
6

Читайте о Server push here.
Я хочу передать данные клиенту из моего веб-приложения в режиме реального времени.
Я смотрел на сокеты TCP как один из вариантов.
Для HTTP я нашел множество фреймворков для Java, PHP, Python и других более here. Однако я не знаю, поддерживает ли какая-либо из них Push.Реализация сервера Push

  • Какие варианты и рамки вы бы предложили для внедрения Server push?
  • На каком языке вы выступаете за то, чтобы реализовать то же и почему?
+2

Рамка не поддерживает «push». Push - это длинный запрос со сном в нем, который периодически отправляет (толкает) обновления клиенту. Я думаю, что поддержка этого фрейма не должна вас беспокоить. – ryeguy

+0

@ryeguy: Будет ли реализация сокетов TCP более эффективной, чем длительный опрос HTTP. –

+1

Ну, вам все равно нужно выполнить HTTP-запрос, предполагая, что вы просто используете базовый HTML (в отличие от флэш-памяти, где вы можете использовать фактические сокеты). Но если вы имеете в виду, что вы создаете свой собственный сервер для приема таких запросов, да, это лучше. Facebook построил свой кометный сервер в erlang для своего чата. – ryeguy

ответ

3

Я использую облетел прямо сейчас, это здорово!

Если вы используете чат или тип подписки, используйте stompservice и на орбите.

Если вы используете картографирование клиента 1 к 1, используйте TCPSocket.

Я могу привести примеры кода, если вы хотите.

+0

Моя реализация имеет несколько клиенты, подключающиеся к моему серверу, и они будут подключаться, возможно, в течение нескольких дней .. Было бы лучше, если бы TCP-сокеты были бы лучше здесь, если бы это была какая-то инфраструктура/технология, которую вы бы порекомендовали? –

+0

Нужно ли клиентам общаться друг с другом? Сокеты TCP хороши, если ваш сервер отправляет индивидуальные данные клиенту, а не клиентам, отправляющим данные между собой или сервером, передавая данные, на которые подписываются клиенты. Для вышеуказанных ситуаций используйте Orbited/STOMP/MorbidQ. В противном случае TCPSocket хорош, и вы просто записываете материал сокета на стороне сервера вручную. В зависимости от сложности того, что должен делать ваш сервер, я слышал о том, что люди используют скрученные, чтобы сделать некоторые из тяжеловесов в сокетах, но я этого еще не сделал. – DevDevDev

+0

Хорошая вещь о сокетах заключается в том, что вы можете написать сервер на любом языке, который вам нравится. Лично я склонен использовать Orbited + Python + Django, который отлично работает для меня. – DevDevDev

1

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

много реализации в python для thoses вы можете google вокруг.

3

Как насчет Orbited, это очень хорошо и используется Echowaves

+0

Поскольку Orbited открывает TCP-сокеты на веб-сервере, я должен использовать VPS для этого? .. Если я использую общий хостинг, возможно, веб-хост может не разрешить открывать и запускать сокеты ... –

3

Comet - это протокол, который вы хотите. Какая реализация кометы лучше всего, это более сложный вызов.

Если вы хорошо с Java (или, я думаю, Jython) или .NET (где IronPython это возможность), я подозреваю (не имея широко пытался их всех! -), что stream hub должен быть основным соперник. Это типичный продукт «freemium» - вы можете получить бесплатную версию («как в бесплатном пиве» ;-), или вы можете попробовать дорогой Web Edition или даже более дорогой Enterprise Edition; сравнение функций - here (например, бесплатная версия: нет https, не более 10 одновременных пользователей, нет .NET).

+0

Работает ли комета или HTTP? Любая комета, подобная реализации на сокетах TCP? –

+1

Да, комета основана на длинных HTTP-запросах, которые, в свою очередь, запускаются поверх сокетов TCP. См. http://en.wikipedia.org/wiki/Comet_(programming), чтобы быть очень основательными. –

+1

Вы видели хорошее сравнение версий кометных реализаций? В настоящее время я играю с http://cometdproject.dojotoolkit.org/ –

0

Вы попробовали StreamHub Push Server?

+0

Не совсем, Алекс Мартелли упомянул об этом в своем посте ... но бесплатная версия позволяет только 10 одновременных пользователей ... правильно? –

2

Я лично пристрастный, но мне нравится WebSync, for IIS/.NET. Он интегрируется с IIS, поэтому никакого другого серверного программного обеспечения не требуется, просто DLL для добавления в ваш проект.

+0

@ Downvoter - причина? – jvenema

3

Хорошо, я использую ASP.NET с PokeIn кометной библиотекой ajax в моем проекте. Кроме того, я пробовал Atmosphere под JAVA .. Мой последний выбор был PokeIn .. Потому что поддержка только push-сервера не решает проблемы. Вам понадобится какой-то клиент для сериализации объектов сервера и управления временем жизни объекта. PokeIn покрыл все эти потребности для меня.