CakePHP: интеграция CometChat

я реализую Приложение CMR в CakePHP Framework 2x. В этом приложении у меня есть требование онлайн текстового чата, аудио чата, обмена экранами и видео чата. После долгого поиска я решил использовать CometChat 5.0 Платиновое издание. Ход работы:

  • Поместить папку Cometchat в каталог webroot.
  • Установил правильно.
  • Сконфигурировал базу данных правильно.

На самом деле, сейчас я сталкиваюсь с проблемами при использовании его с моим Applicaton. Для решения проблем я искал в Google, но нет ни одного места, чтобы сказать мне:

  • Как и где использовать функцию getUserID () или chatLogin () в CakePHP?
  • Где или что делать с сессией вроде: $ _SESSION [ ‘basedata’ а также $ SESSION [ ‘session_auth_user_id’] и т.д., есть много других переменных сессий, которые не имеют никакого значения для моих полей таблицы или таблиц, которые он создал сам.

Прямо сейчас он показывает панель чата правильно, но «Ошибка или предупреждение, которое я должен видеть постоянно»Пожалуйста, войдите, чтобы использовать чат«, проанализировав, я узнал, что ChometChat должен знать о входе в систему информации о пользователях, но мне кажется, что она может получить ее только через сеансы или где-то еще, что я, вероятно, должен знать. Если вы думаете, что у меня возникли проблемы с интеграцией, я я публикую здесь некоторый код, вы можете увидеть его сами: (integeration.php)

Расширенные настройки:

define('SET_SESSION_NAME','');          // Session name
define('DO_NOT_START_SESSION','1');     // Set to 1 if you have already started the session
define('DO_NOT_DESTROY_SESSION','0');   // Set to 1 if you do not want to destroy session on logout
define('SWITCH_ENABLED','1');
define('INCLUDE_JQUERY','1');
define('FORCE_MAGIC_QUOTES','0');

Конфигурации базы данных:

define('DB_SERVER',                 'localhost'                     );
define('DB_PORT',                   "3306"                             );
define('DB_USERNAME',               'root'                 );
define('DB_PASSWORD',               ''                 );
define('DB_NAME',                   'cakechat'                     );
define('TABLE_PREFIX',              ""                              );
define('DB_USERTABLE',              "users"                            );
define('DB_USERTABLE_USERID',       "id"                          );
define('DB_USERTABLE_NAME',         "username"                 );
define('DB_AVATARTABLE',            " "                                );
define('DB_AVATARFIELD',            " CONCAT(".TABLE_PREFIX.DB_USERTABLE.".".DB_USERTABLE_USERID."        ,CONCAT('/',".TABLE_PREFIX.DB_USERTABLE.".user_photo))" );
define('DB_USERTABLE_LASTACTIVITY', "user_lastactive");

Функции 1:

function getUserID() {
$userid = 0;

if (!empty($_SESSION['basedata']) && $_SESSION['basedata'] != 'null') {
$_REQUEST['basedata'] = $_SESSION['basedata'];
}

if (!empty($_REQUEST['basedata'])) {
$userid = $_REQUEST['basedata'];
}

if (!empty($_COOKIE['se_auth_token'])) {
$sql = ("select session_auth_user_id from ".TABLE_PREFIX."session_auth where session_auth_key = '".mysql_real_escape_string($_COOKIE['se_auth_token'])."'");
$query = mysql_query($sql);
$session = mysql_fetch_array($query);
$userid = $session['session_auth_user_id'];
}

return $userid;

}

Моя единственная просьба: пожалуйста, поделитесь любой ссылочной ссылкой или краткой информацией, чтобы сделать все правильно и функционально, любые небольшие усилия будут высоко оценены. заранее спасибо !

-2

Решение

user_photoУбедитесь, что на вашем локальном хосте установлен Red5 для использования функций обмена видео, аудио и экранами,
и вы используете свой локальный хост в качестве VPS.

Используйте эту конфигурацию в вашем файлеgration.php (E: \ xampp \ htdocs \ project \ app \ webroot \ cometchat):

define('DB_SERVER',             $config->default['host']);
define('DB_PORT',               '3306');
define('DB_USERNAME',               $config->default['login']);
define('DB_PASSWORD',               $config->default['password']);
define('DB_NAME',               $config->default['database']);
define('TABLE_PREFIX',              $config->default['prefix']);
define('DB_USERTABLE',              "users");
define('DB_USERTABLE_USERID',       "id" );
define('DB_USERTABLE_NAME',         "username");
define('DB_AVATARTABLE',            " ");
define('DB_AVATARFIELD',            " ".TABLE_PREFIX.DB_USERTABLE.".user_photo ");

и внести некоторые изменения в function getAvatar()

function getAvatar($image) {
if ($image) {
return '../'.$image;
} else {
return '../img/no-image.jpg';
}
}
0

Другие решения

Добавьте это к вашей функции getUserID ():

/*
if (!empty($_SESSION['Auth']['User']['id'])) {
$userid = $_SESSION['Auth']['User']['id'];
}
*/

function getUserID() {
$userid = 0;

if (!empty($_SESSION['basedata']) && $_SESSION['basedata'] != 'null') {
$_REQUEST['basedata'] = $_SESSION['basedata'];
}

if (!empty($_REQUEST['basedata'])) {
$userid = $_REQUEST['basedata'];
}

if (!empty($_COOKIE['se_auth_token'])) {
$sql = ("select session_auth_user_id from ".TABLE_PREFIX."session_auth where session_auth_key = '".mysql_real_escape_string($_COOKIE['se_auth_token'])."'");
$query = mysql_query($sql);
$session = mysql_fetch_array($query);
$userid = $session['session_auth_user_id'];
}

if (!empty($_SESSION['Auth']['User']['id'])) {
$userid = $_SESSION['Auth']['User']['id'];/*pass logged in user id here, which is stored in your session variable*/
}

return $userid;
}
0

По вопросам рекламы [email protected]