JAXL XMPP Daemon для отправки и получения сообщений
Я написал демон JAXL на PHP (Debian 6.0), который сидит и прослушивает входящие сообщения, а затем обрабатывает входящее сообщение, передавая полезную нагрузку в API. (прослушивает входящие сообщения на сервере user1@)
Проблема в том, что я отправляю сообщение обратно пользователю. То, как я это сделал сейчас, - я запускаю другого демона XMPP, отправляю сообщение, затем выключаю демон. Проблема в том, что он запускает другого демона с JID user1@server для отправки на user2@server. Когда я выключаю JAXL, он также отключает "слушающего" демона.
Я подумал о том, чтобы снова запустить демон прослушивания при отправке сообщения, но для его запуска требуется слишком много времени (1-2 секунды), и мое приложение не может позволить себе такое время ожидания.
У кого-нибудь есть идеи, как я мог бы решить эту проблему, возможно, с помощью прослушивающего демона для отправки сообщений?
2 ответа
Просто для тех, кто заинтересован в этом, я закончил тем, что отредактировал JAXL для прослушивания сокета UDP во время работы демона, и, если данные получены на этом сокете UDP, тогда используется $jaxl->sendMessage(...) и send сообщение. Затем я написал простую функцию, которая отправляет данные в этот сокет UDP всякий раз, когда я хочу отправить сообщение.
Так приятно слышать этот прогресс. Хоть из твоего примера кода $jaxl->sendMessage()
похоже, что вы используете JAXL v2.x. Я бы настоятельно рекомендовал вам перейти на JAXL v3.x, если у вас нет жестко заданной зависимости от v2.x.
Вы можете следить за этой веткой группы Google. Отправьте сообщение через существующее активное соединение, если вы планируете использовать v3.x, который теперь имеет официальный способ отправки полезных данных xmpp, связываясь с демоном xmpp, работающим в фоновом режиме (IPC). Вы даже можете удаленно контролировать свои демоны xmpp и многое другое с v3.x.