XMPP чат-клиент в Windows Phone 7.5 - PullRequest
2 голосов
/ 20 марта 2012

С чего начать? создать клиент чата XMPP в Windows Phone 7.5, так как невозможно использовать библиотеку Jabber-Net . Эта библиотека для приложения .Net Windows. У меня нет подсказок. Любая библиотека с открытым исходным кодом, например agsXMPP (поддерживает платформу .Net compack, но не с открытым исходным кодом). Кто-нибудь может мне помочь, пожалуйста?

Ответы [ 4 ]

6 голосов
/ 20 марта 2012

1) agsXMPP имеет открытый исходный код, лицензируемый по лицензии GPL.Вы можете довольно легко перенести его в Wndows Phone.2) Основная проблема - сама платформа.XMPP и большинство других служб обмена мгновенными сообщениями требуют постоянного подключения к сокету.Сейчас в Mango есть сокеты, но всякий раз, когда ваше приложение работает в фоновом режиме, сокет отключается, и вы не можете получать данные через XMPP.Когда ваше приложение работает в фоновом режиме, единственным способом получения данных являются службы Microsoft Push.Как указали Firebellys, это причина, по которой на рынке не так много приложений для обмена мгновенными сообщениями.Вы либо используете только push и преобразуете XMPP <==> Push на своем веб-сервисе, либо используете комбинацию обоих и используете только Push для пробуждения приложения и повторного подключения к сокетам.

1 голос
/ 28 мая 2014

Это выдержка из MSDN Page для Windows Phone 8.1

Есть две основные функции, которые позволяют приложению получать входящие сетевые пакеты, когда приложение находится в фоновом режиме,

1.Срочные push-уведомления, полученные системой и приводящие к запуску фоновой задачи в приложении. Используя эту функцию, приложение получает необработанные данные из службы push-уведомлений Windows (WNS). Содержание этих данных должно быть понятно приложению. Для получения необработанного push-уведомления приложение должно зарегистрироваться в WNS.

2. Сетевые триггеры используют ControlChannelTrigger, который запускает фоновую задачу для получения входящих сетевых данных или отправки пакетов поддержки сети. Примечание. ControlChannelTrigger не поддерживается в Windows Phone.

Итак, ответ Алекса все еще единственный способ сделать это

1 голос
/ 20 марта 2012

Короткий ответ - нет. Microsoft очень старалась, чтобы вы как можно больше использовали асинхронную сеть. Лучший ответ - создать веб-сервис (лазурный или любой другой), который управляет чатами с помощью фоновых событий, проверяющих наличие обновлений. Более сложный ответ - взломать jabber-net, чтобы использовать сокеты из более нового wp7 SDK. Розетки не были доступны в 7, но были в 7,5 манго.

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

0 голосов
/ 22 марта 2012

Один из способов сохранить соединение - использовать агент потокового аудио, который, очевидно, является злоупотреблением рекомендациями Microsoft по разработке, и поэтому ваше приложение не появится на рынке - если, конечно, вы не предоставитеподдержка преобразования текста в речь в клиенте.;)

...