コード例 #1
0
 /**
  * Creates required shared roasters
  *
  * @todo add support for RPC
  *      
  *      
  */
 public static function registerInstanceRoasters($params)
 {
     // First register visitors shared roaster
     $data[] = array("group" => "visitors." . $params['subdomain'], "host" => $params['xmpp_host'], "name" => "Visitors", "desc" => "Visitors", "display" => '\\"\\"', "display_array" => array());
     // Register operators shared roaster
     $data[] = array("group" => "operators." . $params['subdomain'], "host" => $params['xmpp_host'], "name" => "Operators", "desc" => "Operators", "display" => '\\"operators.' . $params['subdomain'] . '\\\\nvisitors.' . $params['subdomain'] . '\\"', "display_array" => array('operators.' . $params['subdomain'], 'visitors.' . $params['subdomain']));
     if ($params['handler'] == 'rpc') {
         try {
             $rpc = new \GameNet\Jabber\RpcClient(array('server' => $params['rpc_server'], 'host' => $params['xmpp_host'], 'account_host' => $params['rpc_account_host'], 'username' => $params['rpc_username'], 'password' => $params['rpc_password']));
             foreach ($data as $groupData) {
                 $infoSharedRoaster = $rpc->getInfoSharedRosterGroup($groupData['group']);
                 if (empty($infoSharedRoaster)) {
                     $rpc->createSharedRosterGroup($groupData['group'], $groupData['name'], $groupData['desc'], $groupData['display_array']);
                 }
             }
         } catch (Exception $e) {
             if (erLhcoreClassModule::getExtensionInstance('erLhcoreClassExtensionXmppservice')->settings['debug'] == true) {
                 erLhcoreClassLog::write(print_r($e, true));
             }
         }
     } else {
         foreach ($data as $groupData) {
             try {
                 $response = self::sendRequest($params['node_api_server'] . '/xmpp-setup-instance-roasters', $groupData);
                 if ($response['error'] == true) {
                     throw new Exception($response['msg']);
                 }
             } catch (Exception $e) {
                 if (erLhcoreClassModule::getExtensionInstance('erLhcoreClassExtensionXmppservice')->settings['debug'] == true) {
                     erLhcoreClassLog::write(print_r($e, true));
                 }
             }
         }
     }
 }