*edit - refactor - optimization - jabber login just one and send messages at once

This commit is contained in:
Ing. Petr Suchy 2020-02-10 09:09:02 +01:00
parent c72ffd0253
commit 74ce97f7ac
No known key found for this signature in database
GPG Key ID: 5BC9AFE53BB0E8A2
3 changed files with 19 additions and 16 deletions

View File

@ -659,12 +659,12 @@ namespace {
* @param string $host
* @param string $username
* @param string $password
* @param string $receiver
* @param array $receivers
* @param string $message
* @param int|null $port
* @param string|null $domain
*/
function psm_jabber_send_message($host, $username, $password, $receiver, $message, $port = null, $domain = null)
function psm_jabber_send_message($host, $username, $password, $receivers, $message, $port = null, $domain = null)
{
$options = [
'jid' => $username, // incl. gmail.com
@ -686,9 +686,11 @@ namespace {
$client = new JAXL($options);
// Add Callbacks
$client->add_cb('on_auth_success', function () use ($client, $receiver, $message) {
$client->add_cb('on_auth_success', function () use ($client, $receivers, $message) {
JAXLLogger::info('got on_auth_success cb');
$client->send_chat_msg($receiver, $message);
foreach ($receivers as $receiver) {
$client->send_chat_msg($receiver, $message);
}
$client->send_end_stream();
});
$client->add_cb('on_auth_failure', function ($reason) use ($client) {

View File

@ -418,7 +418,7 @@ class ConfigController extends AbstractController
psm_get_conf('jabber_host'),
psm_get_conf('jabber_username'),
psm_password_decrypt(psm_get_conf('password_encrypt_key'), psm_get_conf('jabber_password')),
$user->jabber,
[$user->jabber],
psm_get_lang('config', 'test_message'),
(trim(psm_get_conf('jabber_port')) !== '' ? (int)psm_get_conf('jabber_port') : null),
(trim(psm_get_conf('jabber_domain')) !== '' ? psm_get_conf('jabber_domain') : null)

View File

@ -590,23 +590,24 @@ class StatusNotifier
$log_id = psm_add_log($this->server_id, 'jabber', $message);
}
$usersJabber = [];
foreach ($users as $user) {
// Log
if (!empty($log_id)) {
psm_add_log_user($log_id, $user['user_id']);
}
// Jabber
psm_jabber_send_message(
psm_get_conf('jabber_host'),
psm_get_conf('jabber_username'),
psm_password_decrypt(psm_get_conf('password_encrypt_key'), psm_get_conf('jabber_password')),
$user['jabber'],
$message,
(trim(psm_get_conf('jabber_port')) !== '' ? (int)psm_get_conf('jabber_port') : null),
(trim(psm_get_conf('jabber_domain')) !== '' ? psm_get_conf('jabber_domain') : null)
);
$usersJabber[] = $user['jabber'];
}
// Jabber
psm_jabber_send_message(
psm_get_conf('jabber_host'),
psm_get_conf('jabber_username'),
psm_password_decrypt(psm_get_conf('password_encrypt_key'), psm_get_conf('jabber_password')),
$usersJabber,
$message,
(trim(psm_get_conf('jabber_port')) !== '' ? (int)psm_get_conf('jabber_port') : null),
(trim(psm_get_conf('jabber_domain')) !== '' ? psm_get_conf('jabber_domain') : null)
);
}
/**