Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: работа с библиотекой XMPPHP, отправка сообщения

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
ivanm
Отправлено: 30 Сентября, 2016 - 13:03:08
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Сервер Debian, php 7.0

Работаю с библиотекой XMPPHP для отправки сообщений на жабер.

PHP:
скопировать код в буфер обмена
  1. $content=array('adr'=>'xxxk4@im.xxx.xx.ua', 'title'=>'proba', 'msg'=>'проба xmpp');
  2. include(CONF.'lib/jabber/XMPPHP/XMPP.php');
  3. $conn = new XMPPHP_XMPP('хх.ххх.хх.ua', 5222, 'хххk_1', 'pass', 'xmpphp', 'xx.xxx.xx.ua',
  4.         $printlog=false, $loglevel=XMPPHP_Log::LEVEL_INFO);
  5. foreach($content as $k=>$v){
  6. try{
  7. $conn->connect();
  8. $conn->processUntil('session_start');
  9. $conn->presence();
  10. $conn->message($content['adr'], $content['title'].':'.$content['msg']);
  11. $conn->disconnect();
  12. }catch(XMPPHP_Exception $err){die ($err->getMessage()); // return ($err->getMessage());}
  13. }


библиотеку уже модифицировал для работы с php7 (есть мануал в сети как это сделать, в основном там замена split na explode и добавка фигурных скобок)
Валиться библиотека перестала...но теперь со стороны сервера
после глубокого таймаута в несколько минут - вылазит Warning:
Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in /lib/jabber/XMPPHP/XMPP.php on line 394

в строке 394 библиотеки вот такое:
PHP:
скопировать код в буфер обмена
  1. stream_socket_enable_crypto($this->socket, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);


Внятного мануала именно по библиотеке XMPPHP как это исправить - не нашел..
Помогите кто чем может Недовольство, огорчение
 
 Top
Мелкий Супермодератор
Отправлено: 30 Сентября, 2016 - 14:49:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




SSLv2 и v3 давно имеют известные уязвимости. Видимо, на вашем XMPP-сервере эти режимы отключены.
Попробуйте STREAM_CRYPTO_METHOD_TLS_CLIENT, или вообще убрать 3 аргумент (с 5.6 он опционален)


-----
PostgreSQL DBA
 
 Top
ivanm
Отправлено: 02 Октября, 2016 - 06:57:27
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Мелкий пишет:
SSLv2 и v3 давно имеют известные уязвимости. Видимо, на вашем XMPP-сервере эти режимы отключены.
Попробуйте STREAM_CRYPTO_METHOD_TLS_CLIENT, или вообще убрать 3 аргумент (с 5.6 он опционален)


-если STREAM_CRYPTO_METHOD_TLS_CLIENT - пишет :
Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in...
-без параметра - пишет что если шифрование указано в true то третий параметр обязателен
- если ставлю false во втором параметре и добавляю $conn->useEncryption(false):
PHP Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:\nerror:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in
- если STREAM_CRYPTO_METHOD_TLS_SERVER:
PHP Warning: stream_socket_enable_crypto(): SSL: Handshake timed out in /var/conf/lib/jabber/XMPPHP/XMPP .php on line 395
-если STREAM_CRYPTO_METHOD_ANY_CLIENT:
Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:\nerror:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in
-если STREAM_CRYPTO_METHOD_ANY_SERVER:
PHP Warning: stream_socket_enable_crypto(): SSL: Handshake timed out in
STREAM_CRYPTO_METHOD_SSLv3_CLIENT
PHP Warning: stream_socket_enable_crypto(): SSLv3 unavailable in the OpenSSL library against which PHP is linked in
STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT
PHP Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:\nerror:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in
если чтото надо разрешить на сервере - подскажите как...


PS: возможно есть решение(для freebsd):
https://kamihouse[dot]wordpress[dot]com/[dot][dot][dot]ssl-com-php-5-6/
и тут еще немного об этом:
http://forum[dot]codeigniter[dot]com/thread-590[dot]html

но как применить для моего дебиана - так и не понял Недовольство, огорчение


PS: дописал:
stream_context_set_option($this->_smtp_connect, 'ssl', 'verify_host', FALSE);
stream_context_set_option($this->_smtp_connect, 'ssl', 'verify_peer_name', FALSE);
stream_context_set_option($this->_smtp_connect, 'ssl', 'verify_peer', FALSE);
перед:
stream_socket_enable_crypto($this->socket, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);
выбивает:
PHP Warning: stream_context_set_option() expects parameter 1 to be resource, null given in
PHP Warning: stream_context_set_option() expects parameter 1 to be resource, null given in
PHP Warning: stream_context_set_option() expects parameter 1 to be resource, null given in
PHP Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:\nerror:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed in

PS: пробовал еще сделать как сдесь:
http://forum[dot]directadmin[dot]com/sho[dot][dot][dot]read.php?t=50885
но тоже не помогло...либо не то чтото сделал

вообщим больше ничего не гуглится.... помогите собрать все вместе...

(Отредактировано автором: 02 Октября, 2016 - 09:03:20)

 
 Top
Мелкий Супермодератор
Отправлено: 02 Октября, 2016 - 11:36:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




ivanm пишет:
stream_context_set_option($this->_smtp_connect, 'ssl', 'verify_peer', FALSE);
перед:
stream_socket_enable_crypto($this->socket, true, STREAM_CRYPTO_METHOD_SSLv23_CLIENT);

Что, просто на удачу набрали случайную строку кода? Да ещё без E_NOTICE?
Я-то подумал, что вы хоть понимаете, что делаете.

Поищите другую реализацию XMPP. Зачем насиловать прогнивший труп? Мне гугл вот этот проект выдаёт: https://github[dot]com/fabiang/xmpp Билд под php7 тесты проходит.


-----
PostgreSQL DBA
 
 Top
ivanm
Отправлено: 04 Октября, 2016 - 14:55:32
Post Id


Новичок


Покинул форум
Сообщений всего: 19
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




НУ ВСЕ! Закипел чайничек....
-по XMPPHP - не советуют использовать - устарела Недовольство, огорчение
-fabiang/xmpp - я непойму как поставить, где пути прописать..да и composer какойто нужен
(если дадите какой то мануал чтобы совсем уж по пальцам - буду признателен)
-наверное неплохой вариант накопал - поставил на сервер sendxmpp (перлскрипт - устанавливается из официального репозитория):
пробовал сделать вот так:
PHP:
скопировать код в буфер обмена
  1. print_r(shell_exec('sendxmpp -t -v -u sendername -p password -j server.ua:5222 -s "hello" receivername'));

но видимо чтото с синтаксисом не то - видает в терминале:
sendxmpp: ssl_verify: 1
sendxmpp: tls_ca_path:
sendxmpp: Connect: 1
sendxmpp: AuthSend: ok
и виснет терминал...(^C)

вобщем проблемка у меня с xmpp... уже неделю бьюсь об стенку....
(Добавление)
САМ ОТВЕЧАЮ НА СВОЙ ВОПРОС:
-наилучший способ - это использовать скрипт sendxmpp установленый на сервере
(например у меня так: aptitude install sendxmpp)

из php отсылаем сообщение так:
PHP:
скопировать код в буфер обмена
  1. shell_exec('echo proba | sendxmpp -t -v -j server.ua:5222 -u sendername -p password receivername@server.ua')


ХУХ...

(Отредактировано автором: 04 Октября, 2016 - 14:59:41)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB