WeBinstruments

Инструментарий для веб-мастеров

 

на сайте на всех сайтах для веб разработчиков везде
 
 Скрипты
  PHP скрипты   
  Flash скрипты   
  Javascript скрипты   

 Софт
  Инструменты SEO   
  Разработка сайтов   
  Серверное ПО   

 Документация
  MySQL   
  PHP   
  HTML   
  Протоколы и сервисы Internet   

 Статьи
  PHP   
  MySQL   
  Сервер   
  еще...   

 Услуги и сервисы
  Домены   
  Хостинги   
  Блоки для сайта   

 Новости


 Контакты
  icq: 158325531
  email:
  все контакты: здесь




Atom все поступления
Раздел Файлы
Раздел Услуги и сервисы
Раздел Новости
Раздел Статьи
комментарии



 Партнеры




PHP класс для работы с XMPP (jabber)

22.08.2010
сайт: http://webi.ru
условия использования: бесплатно

скачать XMPP webi 1.01 zip архив


Версия 1.01
Простой php класс для работы с протоколом XMPP (jabber). Отправка, примем сообщений, ведение логов.

Все Php файлы сохранены в юникоде (utf-8), так как jabber работает в юникоде. 

1. Отредактируйте файл config.ini.php

2. Откройте файл xmpp.class.php.
Отредактируйте самый первый метод eventMessage(). Это реакция на входящие сообщения. По умолчанию установлена отправка ответного сообщения на входящее. Можете обработать входящие сообщения по своему усмотрению.

3. Отредактируйте index.php 
Пример:

<?php
include_once("xmpp.class.php");
$webi = new XMPP($webi_conf);
$webi->connect(); // установка соединения...
$webi->sendStatus('text status','chat',3); // установка статуса
$webi->sendMessage("asd@asd.ru", "text message"); // отправка сообщения

// так можно зациклить
while($webi->isConnected)
{
    
$webi->getXML();
}
?>


---
Версия 1.01
Добавлена возможность отключения шифрования
---

Подробная статья о работе с jabber через PHP Jabber и PHP


Комментарии

RSS комментарии


06.07.2010 Дмитрий
Большое спасибо за отличный класс и проделанную работу. Скажите пожалуйста, возможно ли отправлять и принимать сообщение через icq-номер зарегистрированный на транспорте icq джаббера?



06.07.2010 админ
Вопрос интересный.
Работу транспортов я не изучал, даже не скажу, получится этим классом работать с транспортами или нет.
Наверное проще для icq использовать свой класс специальный для работы с ICQ.



07.07.2010 domov0y
сообщение отправленное на транспорт ничем не отличается от обычного.
все тот же
<message to="uin@you_icq_transport.you_jabber_server">
</message>



07.07.2010 Дмитрий
Да, получилось отправить как обычное сообщение. Только нужно быть внимательным с кодировками и правильно их выставить в настройках транспорта непосредственно на сервере или же предварительно настроить транспорт в любом десктопном клиенте. Еще одно важное замечание: от длинного сообщения аська падает. Сделал условие в скрипте с ограничение посредством mb_strlen($content,'utf-8')



07.07.2010 сергей
Дмитрий, как от длинного сообщения аська падает?
Сам клиент аськи вываливается что ли?



08.07.2010 Дмитрий
При отправке длинного сообщения, вываливается аська на транспорте. То есть сам скрипт продолжает работать и это видно по тому, что JID джаббера остается в онлайне. Так что нареканий на Ваш клас нет. Есть только одна непонятная ошибка, возможно она появилась после небольших изменений в скрипте для интеграции его в фреймворк CI.

A PHP Error was encountered
Severity: Warning
Message: fwrite(): supplied argument is not a valid stream resource
Filename: libraries/Xmpp.php
Line Number: 141

да и мне самому как то не понятно это :)
return fwrite($this->stream,$xml."\n");





09.07.2010 админ
Дмитрий, эта ошибка говорит о том, что ресурс потока $this->stream не правильный.
Возможно на этом этапе идет отправка сообщения в отключенный поток или переменная $this->stream вообще не правильная.
Скорее всего просто поток в этом месте уже отвалился.



21.08.2010 Skobkin.ru
Как отключить шифрование? У меня PHP его не поддерживает.
Специального метода как в классе XMPPHP не нашел.



22.08.2010 Админ
Skobkin, добавил отключение шифрования, качайте обновленную версию.



23.08.2010 Николай
Здравствуйте, что нужно добавить в файл index.php чтобы обрабатывались входящие сообщения? Покажете какой именно код добавить. А то отправка писем работает, а входящие не обрабатываются не как.



23.08.2010 виктор
Николай, для входящих сообщений открывайте файл xmpp.class.php
Самый первый метод eventMessage()
Тут как раз ловятся входящие сообщения.
В переменной $content текст сообщения
В переменной $fromJid от кого сообщение



26.08.2010 Николай
Я это понял, надо ли чтот добалять в файл index.php? Я добалял в index.php
$webi->eventMessage($fromJid, $content, $offline = FALSE); но оффлайн сообщения не приходили



26.08.2010 Виктор
Николай, нет, ничего не нужно добавлять в index.php.
Эта функция и так обрабатывается автоматически, прямо в ней вносите правки.
Оффлайн сообщения скорее всего приходили, просто они не обрабатывались.
Прямо в xmpp.class.php в eventMessage сделайте вывод переменной $content на экран и посмотрите приходят сообщения или нет.




27.08.2010 Николай
При выполнеии скрипта почему то jabber логин с которого вхожу отстается потосянно в сети и не отключается, почему так получается? выводил переменную $content, она не вывилась на экран.



27.08.2010 Виктор
Николай, а может в это время у вас запущен этот же логин jabber в другом месте, с более высоким приоритетом?
поэтому и находится он в сети и сообщения входящие уходят в него.



09.10.2010 7oa
Ошибочка!
Warning: stream_socket_enable_crypto() [streams.crypto]: this stream does not support SSL/crypto in Z:\home\jabberxmpp\www\xmpp.class.php on line 353

Не понятно как отключать шифрование.



09.10.2010 Админ
7oa, в конфиге есть
$webi_conf['tls_off'] = 0;
это отключение шифрования.
именно отключение, чтобы отключить нужно поставить 1



09.10.2010 7oa
Шифрование отключила. Но появилась другая ошибка.
Warning: Invalid argument supplied for foreach() in Z:\home\jabberxmpp\www\xmpp.class.php on line 429



09.10.2010 7oa
Закомментировала этот кусок кода. Вроде заработало.
Один минус - долго думает.



10.10.2010 админ
7oa, это не ошибка, это предупреждение, можно отключить эти сообщения с помощью
error_reporting(0);


1 2 3

Добавить свой комментарий


Ваше имя(* обязательно)


Текст сообщения(* обязательно)









 
 
  запомнить

 
Copyright © 2003-2024 WeBi Constructor
Rambler's Top100