2012-03-20 3 views
2

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

ответ

6

1) agsXMPP является открытым исходным кодом, лицензированным под лицензией GPL. Вы можете легко переносить его на Wndows Phone.

2) Основной проблемой является сама платформа. XMPP и большинство других служб IM требуют постоянного соединения сокетов. Теперь в Mango есть сокеты, но всякий раз, когда ваше приложение уходит в фоновом режиме, сокет отключается, и вы не можете получать какие-либо данные через XMPP. Когда ваше приложение находится в фоновом режиме, единственным способом получения данных являются службы Microsoft Push. Как указывал firebellys, это причина, по которой в Marketplace не так много приложений для обмена мгновенными сообщениями. Вы либо используете push только и конвертируете XMPP < ==> Нажмите на свой веб-сервис, либо вы используете комбинацию обоих, и используйте Push только для того, чтобы разбудить ваше приложение, а затем снова подключиться к сокетам.

+0

Не доступны ли инструменты BETA, поддерживающие обработку фона? –

+0

Мне не известны новые инструменты для обработки фона. У вас есть ссылка? См. Также: http: //www.phonearena.com/news/Skype-for-Windows-Phone-shows-background-processing-limits_id27522 – Alex

+0

Не могли бы вы помочь мне в использовании этого 'http://www.ag-software.de/matrix-xmpp-sdk/matrix-developer- tutorial/'sdk в телефоне Windows. Он поддерживает Windows Phone 7 –

1

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

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

+0

извините, я обновил мой вопрос. Мое приложение только в 7.5. Итак, Sockets - это ответ? –

+1

См. Ответ Alex's, вы можете это сделать, но ваше приложение будет довольно ограниченным. Следовательно, отсутствие истинных клиентов на рынке. Это требует больших усилий, чтобы добиться этого. – firebellys

0

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

+0

. Мой вопрос - это шаги или рекомендации по разработке клиента XMPP (через сокеты или в зависимости от того, что возможно) –

+0

Это был год. Как идет проект? Заинтересовался этим сам. Мой ответ разрабатывался по пункту 2) ответа Алекса, btw ... – thomiel

+0

ничего не изменилось, также WP8 не позволяет создавать постоянные сокеты. Таким образом, вы по-прежнему используете одно из двух предложенных мной решений. – Alex

1

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

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

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

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

Таким образом, ответ Алекс по-прежнему единственный способ пойти об этом

Смежные вопросы