Как сделать кросс-доменный Comet сервер?

Возникла задача реализовать logn-polling запросы на comet сервер кросс-доменным способом, и вроде бы ничего страшного в этом нет, ставим нужные заголовки от нашего сервера и все кросс-доменные вопросы снимаются. Однако, выбрав в качестве сomet-сервера Dklab Realplexor я столкнулся с проблемой того, что создается iframe который тут же начинается ругаться на не совпадающие домены. Пойдя смотреть ближайшую, популярную реализацию long-polling запросов на ВК я обнаружил, что у этих ребят тоже используется iframe. К сожалению я пока не смог понять зачем вообще нужен этот iframe, в чем собственно его суть. Кто-нибудь вообще в курсе дел? Делал что-нибудь подобное?
  • Вопрос задан
  • 3159 просмотров
Пригласить эксперта
Ответы на вопрос 3
Cobalt
@Cobalt
Программист - этим все сказано
Что используете в качестве клиенткой JS ? Некоторые библиотеки пытаются автоматом определить какой способ обхода кроссдоменности можно использовать. А iframe - один из "хаков" которым можно обойти кроссдоменные ограничения
Ответ написан
Комментировать
unconnected
@unconnected
Универсальный вариант - jsonp.
Iframe старый хак, из-за которого яблоко подало в суд на гугла и выйграло. Теперь, кажется, нигде не работает.
Ответ написан
Комментировать
@Levhav
Возьмусь за разработку проектов любой сложности.
Я делал комет сервис и обошёлся без iframe, в long-polling используется iframe как очень старый хак для тех случаев где не поддерживается AJAX. Так что в VK он явно не для этого так как они уже не поддерживают те браузеры где это надо.

А вообще рекомендую использовать websockets он уже многими браузерами поддерживается (caniuse.com/#search=websockets) да и возможностей больше и сообщения быстрее доходят если их много, вообщем куча плюсов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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