Я просматриваю архитектурные варианты проекта, в котором будут отображаться текущие обновления (например, Facebook) действий пользователя - логины, фотографии и т.д. Два основных компонента пользовательского интерфейса - это область автоматического обновления прокрутки, в которой будут появляться новые уведомления (фотографии и т.д.) и панель инструментов, которая будет обновляться такими вещами, как обновленное количество сообщений и т.д.
Соперниками для этого являются технологии Jabber/Comet/XMPP и WebSocket.
Зал кометы:
Лагерь WebSockets:
Поскольку эта существующая инфраструктура представляет собой стек Microsoft, я бы предпочел не вводить в состав Java-серверов. Говоря это, он оставляет (очень привлекательный) WebSync (Comet) и SuperWebSocket (WebSockets). Однако интеграция с Pokein DLL довольно легко интегрируется в проект .Net.
Есть ли еще реальные инициативы WebSocket для уровня производительности для .NET? Слишком рано использовать WebSockets в стеке Microsoft, и я должен пойти в пользу чего-то вроде Kazing?
Я все еще жду отчета о наших типах и версиях браузера текущего пользователя (проверка совместимости с HTML5). Я подозреваю, что это число будет низким (старшая пользовательская база). Если это так, то победителем будет опция кометы.
Что еще нужно рассмотреть?
Глядя на некоторые из .Net-инициатив, таких как Sockets.IO и другие, я думаю, что это может быть слишком много в зачаточном состоянии, применительно к крупномасштабной производственной системе.
Могу ли я получить комментарии от тех, кто использовал любую из технологий и продуктов, перечисленных выше?
Спасибо.
UPDATE
Я все еще охочу за некоторыми хорошими серверами WebSocket, которые являются надежными на уровне производства. Я добавил XSockets и SignalR в лагерь Websockets после того, как их недавно нашли. В это время еще есть два основных соперника. Это может быть просто из-за того, что у них потрясающе отличные маркетинговые команды, хорошие материалы для разработчиков - API и видео. Множество других реализаций, похоже, все еще находится в фазе новых форм, где приводятся примеры подключения только с несколькими клиентами. Хотя это демонстрирует технологию, эти демонстрации не подкреплены значительными данными о полезной нагрузке и нагрузке. Kaazing и LightStreamer соответствуют приведенным ниже требованиям.
В XSockets есть несколько приятных примеров, но опять же, отсутствуют некоторые реальные производственные показатели.
Похоже, что SignalR еще не протестирован в реальной производственной среде. Масштабное решение находится в разработке, но пока не выглядит стабильным. С нетерпением ждем, как этот проект будет реализовываться в будущем.
Основные требования:
- Возможность реализовать отказоустойчивую технологию (если HTML5/WebSockets не доступно)
- Большое количество одновременных подключений и количество сообщений в второй
- Масштабируемость - возможность добавления дополнительных серверов/узлов для больших требования к трафику