XMPP чат-клиент в Windows Phone 7.5
С чего начать? создать клиент чата XMPP в Windows Phone 7.5, так как невозможно использовать библиотеку Jabber-Net. Эта библиотека для приложения.Net Windows. У меня нет подсказок. Любая библиотека с открытым исходным кодом, такая как agsXMPP(поддерживает.Net Compack Framework, но не с открытым исходным кодом). Кто-нибудь может мне помочь, пожалуйста?
4 ответа
1) agsXMPP имеет открытый исходный код по лицензии GPL. Вы можете легко перенести его на телефон Wndows.
2) Основная проблема - сама платформа. XMPP и большинство других служб IM требуют постоянного подключения к сокету. Сейчас в Mango есть сокеты, но всякий раз, когда ваше приложение работает в фоновом режиме, сокет отключается, и вы не можете получать данные через XMPP. Когда ваше приложение работает в фоновом режиме, единственным способом получения данных являются службы Microsoft Push. Как указали Firebellys, это причина, по которой в Marketplace не так много приложений для обмена мгновенными сообщениями. Вы либо используете только push и конвертируете XMPP <==> Push на своем веб-сервисе, либо используете комбинацию обоих и используете только Push для пробуждения приложения и повторного подключения к сокетам.
Краткий ответ: нет. Microsoft очень старалась, чтобы вы как можно больше использовали асинхронную сеть. Лучший ответ - создать веб-сервис (лазурный или любой другой), который управляет чатами с помощью фоновых событий, проверяющих обновления. Более сложный ответ - взломать jabber-net, чтобы использовать сокеты из более нового wp7 SDK. Розетки не были доступны в 7, но были в 7,5 манго.
Вот почему вы не видите много IM-клиентов на рынке (и многие из них существуют не очень хорошо), но обходной путь к отсутствию настоящих сетей в реальном времени на телефоне оказывается больше проблем, чем стоит, Вы часто пишете совершенно новую службу состояний чата в облаке или на сервере, чтобы справиться с ней.
Это выдержка из страницы MSDN для Windows Phone 8.1
Есть две основные функции, которые позволяют приложению получать входящие сетевые пакеты, когда приложение находится в фоновом режиме,
1.Срочные push-уведомления, полученные системой и приводящие к запуску фоновой задачи в приложении. Используя эту функцию, приложение получает необработанные данные из службы push-уведомлений Windows (WNS). Содержание этих данных должно быть понятно приложению. Приложение должно зарегистрироваться в WNS, чтобы получать необработанные push-уведомления.
2. Сеть запускается с помощью ControlChannelTrigger, который запускает фоновую задачу для получения входящих сетевых данных или отправки пакетов поддержки сети. Примечание. ControlChannelTrigger не поддерживается в Windows Phone.
Таким образом, ответ Алекса по-прежнему единственный способ сделать это
Один из способов сохранить соединение - использовать агент потокового аудио, который, очевидно, является злоупотреблением разработкой руководств Microsoft, и, следовательно, ваше приложение не появится на рынке - если, конечно, вы не предоставите текстовое сообщение -поддержка в клиенте.;)