/** * Send notification to a project * * @access public * @param array $project * @param string $event_name * @param array $event_data */ public function notifyProject(array $project, $event_name, array $event_data) { try { $room = $this->projectMetadata->get($project['id'], 'jabber_room'); if (!empty($room)) { $client = $this->getClient(); $channel = new Presence(); $channel->setTo($room)->setNickName($this->config->get('jabber_nickname')); $client->send($channel); $message = new Message(); $message->setMessage($this->getMessage($project, $event_name, $event_data))->setTo($room)->setType(Message::TYPE_GROUPCHAT); $client->send($message); $client->disconnect(); } } catch (Exception $e) { $this->logger->error('Jabber error: ' . $e->getMessage()); } }
/** * Send message to the XMPP server * * @access public * @param integer $project_id * @param string $payload */ public function sendMessage($project_id, $payload) { try { $params = $this->getParameters($project_id); $options = new Options($params['server']); $options->setUsername($params['username']); $options->setPassword($params['password']); $options->setTo($params['domain']); $options->setLogger($this->container['logger']); $client = new Client($options); $channel = new Presence(); $channel->setTo($params['room'])->setNickName($params['nickname']); $client->send($channel); $message = new Message(); $message->setMessage($payload)->setTo($params['room'])->setType(Message::TYPE_GROUPCHAT); $client->send($message); $client->disconnect(); } catch (Exception $e) { $this->container['logger']->error('Jabber error: ' . $e->getMessage()); } }