Передача данных с использованием XMPP - есть причины, почему нет? - PullRequest
2 голосов
/ 16 февраля 2010

Мне нужен простой, легкий механизм аутентификации и передачи данных (на платформе .NET). Я посмотрел WCF, SOAP и т. Д. Все они кажутся слишком сложными и сложными для моих нужд. Мне нужно что-то простое и понятное, что приведет меня к протоколу чата, например, к Jabber. Моя передача данных в основном невелика - пример: пользователь что-то ищет и возвращает результаты и т. Д.

Учитывая, что Jabber выполняет аутентификацию, шифрование и все, что у вас есть, есть ли причины, по которым мне не следует его использовать? предложения по альтернативам?

Спасибо

Ответы [ 3 ]

1 голос
/ 24 февраля 2010

Результаты поиска не кажутся одноранговыми (поиск, как правило, связан с хранилищем данных, поэтому я догадываюсь об этом), и в этом случае HTTP, вероятно, соответствует вашим потребностям. Напишите свой сервер во что бы то ни было и используйте WebClient, предоставляя аутентификацию для каждого запроса. Вы можете использовать дайджест-аутентификацию, если беспокоитесь о безопасности. Недостатком XMPP является то, что вам нужно беспокоиться о том, чтобы оставаться на связи, и что в сети много посторонней информации. Например, наличие, iq, согласование протокола. Также ejabberd (не уверен в других - есть ли большой .Net XMPP сервер?) Имеет тенденцию пытаться договориться о SSL.

Если вас не беспокоит пропускная способность, вы, вероятно, не беспокоитесь ни о одном из вышеперечисленных, но, безусловно, самая простая модель программирования - это просто WebClient, запускающий запросы без сохранения состояния. Вы никогда не отключаетесь, и обработка ошибок проста.

OTOH ваш ответ на приведенный выше комментарий, по-видимому, подразумевает, что у вас могут быть некоторые P2P-элементы, и в этом случае HTTP, вероятно, не будет работать, если вы не включите небольшой обход сети и прокси-сервер, чтобы выставить одноранговые узлы как публичные адреса для каждого Другой. XMPP намного проще, чем это.

У нас есть сетевое приложение для лекционных кинотеатров, обеспечивающее плавную передачу 750 Мбит / с по XMPP. Вы, вероятно, найдете, что он хорошо справляется с нагрузкой.

Я рекомендую ejabberd на сервере (он кроссплатформенный и невероятный) и agsXMPP для клиента.

0 голосов
/ 16 февраля 2010

Звучит так, будто XMPP может подойти, но вы должны рассмотреть и HTTP. XMPP, вероятно, имеет смысл только в том случае, если вам действительно требуется обмен сообщениями / передача с отслеживанием состояния HTTP может работать довольно хорошо для длительных соединений, если вы используете, например, Передача-кодировка: чанкированная.

0 голосов
/ 16 февраля 2010

Для передачи данных, почему бы не использовать простой простой HTTP?

...