XMPP может быть излишним из-за того, что вы пытаетесь сделать. Я бы посмотрел на какой-нибудь сервер сообщений. Например, с AMQP вы можете использовать:
С STOMP вы можете использовать:
Очевидно, в Zend Framework есть что-то под названием Zend_Queue , что также может быть неплохо.
См. этот вопрос (Что такое хороший брокер сообщений для PHP?) .
EDIT:
Что касается того, почему вы хотите это сделать, XMPP довольно сложный и большой. Что-то вроде ActiveMQ + STOMP намного проще. ActiveMQ - единственный из них, который я использовал, поэтому я поговорю об этом.
Чтобы отправить сообщение, вы должны сделать что-то вроде этого (используя PHP Stomp ):
<?
require_once("Stomp.php");
$connection = new Stomp("tcp://your-activemq-server:61613");
$connection->connect();
$connection->send("/queue/someOtherUser", "Hey buddy, let's talk.");
$connection->disconnect();
?>
Затем забрать сообщения:
<?
require_once("Stomp.php");
$connection = new Stomp("tcp://your-activemq-server:61613");
$connection->connect();
$connection->subscribe("/queue/myQueue");
while(($message = $connection->readFrame()) != null) {
echo $message->body;
$connection->ack($message); // Tell the broker that you handled the message
}
$connection->disconnect();
?>
Конечно, в реальной ситуации вы, вероятно, захотите установить заголовок, в котором указано, от кого получено сообщение, до его отправки, но я не совсем уверен, как именно вы отправляете / получаете заголовки в этой библиотеке.
Еще лучшим вариантом может быть нажатие ActiveMQ напрямую из JavaScript . Я подозреваю, что безопасность будет трудно реализовать, хотя.