Приложение для веб-чата - ASP.NET/Jabber/Ajax/WCF/Comet/ReverseAjax - Проблемы, с которыми сталкиваются - В поисках идей - PullRequest
5 голосов
/ 12 июля 2010

Последние три недели я пытался создать веб-приложение для чата, и у меня возникли проблемы с любым маршрутом (техника / технология программирования), который я выбрал для его создания. Ниже я объяснил проблемы, с которыми я столкнулся во всех из них. Просьба представить любые ваши идеи в этом.

ASP.NET-AJAX

  1. Первая проблема заключается в том, что не совсем в режиме реального времени
  2. Если клиент подключается к серверу чата каждые x секунд (постоянная отметка времени), он не будет работать в режиме реального времени, если x не очень очень меньше
  3. Если x очень маленький, например, 1 секунда, и если в сети одновременно 1000 пользователей, я думаю, что это действительно ударит сервер чата и вызовет проблемы с масштабируемостью / производительностью

WCF-Duplex

К сожалению, я потратил немало времени, пытаясь создать дуплексную службу WCF, которая обслуживает всех клиентов и вызывает клиента через канал по мере необходимости. Но недавно я узнал , что дуплексный обратный вызов WCF не будет работать с ASP.NET (поскольку http является типом запроса и ответа). Я следил за этой замечательной статьей по созданию дуплексного сервиса.

Комета / ReverseAjax / HTTP-сервер Push

Я чрезвычайно новичок в этой технике и удивляюсь, насколько хорошо она может масштабироваться. После моего первого взгляда на эту технику программирования здесь в вики и самой первой статьи о комете Алекса здесь я узнал, что клиент всегда поддерживает открытое соединение (долгоживущие вызовы ajax) на сервер, который может использоваться сервером для передачи «интересных событий, происходящих на сервере» в браузер (клиент). Так насколько хорошо это может масштабироваться? Что, если максимальное число открытых соединений превышает IIS или другие подобные проблемы?

Jabber-сервер / клиент (XMPP)

Я вижу, что большинство известных приложений чата, которые можно увидеть в Интернете, используют Jabber. Я также узнал, что писать Jabber-сервер с нуля - утомительная задача. У меня есть отдельное хранилище профилей пользователей для приложений. Могу ли я легко интегрировать это с Jabber? Любые серверы Jabber с открытым исходным кодом, которые я могу разместить в частном порядке? (Я видел много инструментов с открытым исходным кодом для простой сборки клиента)

Любая предоставленная информация очень ценится.

Спасибо

NLV

Ответы [ 4 ]

5 голосов
/ 15 июля 2010

Если вы используете .NET, проверьте WebSync . Это позволяет полностью масштабируемой комете с использованием IIS интегрироваться непосредственно с вашим приложением. Вы можете попробовать бесплатную версию для сообщества, а также множество примеров и демонстраций в чате.

Я только недавно реализовал мультиклиентское веб-приложение Jabber с использованием WebSync и jabber-net .

4 голосов
/ 20 февраля 2011

PokeIn предоставляет общие объекты клиентам и просто помогает создавать впечатляюще надежные и быстрые веб-приложения. Даже если ваше приложение размещено на нескольких серверах, PokeIn управляет общими объектами на всех них. Итак, эта функция поможет вам создавать достаточно эффективные решения. В дополнение к этому, вы найдете очень полезные образцы более там

2 голосов
/ 29 апреля 2013

Я знаю, что это старый, но если кто-то найдет это, вы должны использовать SignalR

1 голос
/ 12 июля 2010

Jabber-сервер с открытым исходным кодом

Вы проверили OpenFire

...