Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Следующая версия Следующая версия справа и слева
comet:cometql [2017/01/18 03:14]
levhav
comet:cometql [2018/02/24 12:02]
anastation468 [Таблица pipes_messages]
Строка 1: Строка 1:
 +<​rst>​RU::​002-API::​002-CometQL</​rst>​
 +<​rst>​Header:​ CometQL API</​rst>​
 +
 ====== CometQL ====== ====== CometQL ======
  
Строка 7: Строка 10:
   -  Единый api для более чем 12 языков программирования   -  Единый api для более чем 12 языков программирования
   -  Простой и понятный вид запросов   -  Простой и понятный вид запросов
-  -  В php есть средства поддержания постоянных соединений с MySQL и теперь их можно так же использовать для работы с comet сервером.+  -  В php есть средства поддержания постоянных соединений с MySQL и теперь их можно также использовать для работы с comet сервером.
  
-В данном представлении данные лежат в таблицах а команды на выборку или вставку совершают какие то действия. +В данном представлении данные лежат в таблицах а команды на выборку или вставку совершают какие-то действия. 
-Например для получения информации о том когда пользователь был online достаточно выполнить следующий запрос:​+Напримердля получения информации о томкогда пользователь был online достаточно выполнить следующий запрос:​
 <code sql>​select * from users_time where id = 2;</​code>​ <code sql>​select * from users_time where id = 2;</​code>​
 Вот что мы увидим Вот что мы увидим
Строка 42: Строка 45:
  
 <note important>​Есть случаи когда нет возможности использовать протокол MySQL для соединения с комет сервером. Для таких случаев можно отправлять команды комет серверу по HTTP/HTTPS. Смотрите статью [[comet:​cometql:​HTTP|отправка CometQL запросов по HTTP]]</​note>​ <note important>​Есть случаи когда нет возможности использовать протокол MySQL для соединения с комет сервером. Для таких случаев можно отправлять команды комет серверу по HTTP/HTTPS. Смотрите статью [[comet:​cometql:​HTTP|отправка CometQL запросов по HTTP]]</​note>​
-====== Важные замечания для старых пользователей ====== 
  
-  * Для корректной работы ​с CometQL необходимо использовать [[comet:​javascript_api|JavaScript Api]] версии 2.0 или выше+Пример подключения к комет серверу из php.  
-  * Одновременное использование CometQL и Comet Server PHP API с одним и тем же [[comet:​dev_id|публичным идентификатором разработчика]] ​не рекомендуется ​так ​как ​часть функций будет ​работать не правильно.+<code php> 
 +$dev_id = "​15";​ // Используется как логин 
 +$dev_key = "​lPXBFPqNg3f661JcegBY0N0dPXqUBdHXqj2cHf04PZgLHxT6z55e20ozojvMRvB8";​ // Используется как ​пароль
  
 +// Подключение выглядит как будто мы подключились к бд. Можно использовать функции для работы с mysql
 +// Но на самом деле вы подключаетесь к комет серверу. ​
 +$link = mysqli_connect("​app.comet-server.ru",​ $dev_id, $dev_key, "​CometQL_v1"​);​
 +if(!$link)
 +{  ​
 +    die("​Не удалось создать соединение c CometQL"​);​
 +}
 +
 +$result = mysqli_query (  $link, "show status"​ ); 
 +if(mysqli_errno($link) != 0)
 +{
 +    echo "Error code:<a href='​https://​comet-server.com/​wiki/​doku.php/​comet:​cometql:​error' ​ target='​_blank'​ >"​.mysqli_errno($link)."</​a>";​
 +    echo "Error text:<a href='​https://​comet-server.com/​wiki/​doku.php/​comet:​cometql:​error'​ target='​_blank'​ >"​.mysqli_error($link)."</​a>";​
 +    exit;
 +}
 +
 +while($row = mysqli_fetch_assoc($result))
 +{
 +    echo "<​pre>";​
 +    var_dump($row);​
 +    echo "</​pre><​br>";​
 +}  ​
 +
 +</​code>​
 ====== Описание таблиц ====== ​ ====== Описание таблиц ====== ​
  
Строка 52: Строка 80:
  
 Замечания по реализации текущей версии CometQL: Замечания по реализации текущей версии CometQL:
-  * В CometQL реализовано не всё что доступно в sql. Часть функционала планируется реализовать позже. Но некоторые ограничения наложены специально в целях оптимизации внутренней структуры Comet сервера.+  * В CometQL реализовано не всёчто доступно в sql. Часть функционала планируется реализовать позже. Но некоторые ограничения наложены специально в целях оптимизации внутренней структуры Comet сервера.
   * В целях [[comet:​cometql:​optimization_for_the_cluster|оптимизации внутренней логики]] операции delete и insert не возвращают количество затронутых строк, по крайней мере так будет в CometQL версии 1.0   * В целях [[comet:​cometql:​optimization_for_the_cluster|оптимизации внутренней логики]] операции delete и insert не возвращают количество затронутых строк, по крайней мере так будет в CometQL версии 1.0
   * Поддержка в запросах операторов OR, AND и ORDER BY будет реализована позже.   * Поддержка в запросах операторов OR, AND и ORDER BY будет реализована позже.
  
-<note warning>​У некоторых хостинг провайдеров установлен запрет на внешние соединения,​ это достаточно часто встречается на бесплатных или очень очень дешёвых хостингах. Для того что бы проверить возможность использования CometQL воспользуйтесь [[comet:​testhosting|скриптом проверки хостинга]]. </​note>​+<note warning>​У некоторых хостинг провайдеров установлен запрет на внешние соединения,​ это достаточно часто встречается на бесплатных или очень очень дешёвых хостингах. Для тогочтобы проверить возможность использования CometQL воспользуйтесь [[comet:​testhosting|скриптом проверки хостинга]]. </​note>​
 ===== Таблица pipes_messages ===== ===== Таблица pipes_messages =====
  
Строка 65: Строка 93:
 </​code> ​ </​code> ​
  
-Поля "​name"​ и "​event"​ должны соответствовать следующему <​abbr>​Цифры от 0 до 9 буквы английского алфавита и знаки = + / _(регулярному выражению [0-9A-z=+/​_])</​abbr>​+Поля "​name"​ и "​event"​ должны соответствовать следующему <​abbr>​Цифры от 0 до 9 буквы английского алфавита и знаки = + / _ и длиной от 3 до 64 символов(регулярному выражению ​^[0-9A-z=+/​_]{3,64}$)</​abbr>​
  
-<note tip>​Узнать количество людей в канале можно сделав запрос к таблице "​pipes"​ так как сообщение отправляется всем кто подписался на канал то таким образом можно узнать число людей которые получили это сообщение.</​note>​+<note tip>​Узнать количество людей в канале можно сделав запрос к таблице "​pipes"​ так как сообщение отправляется всемкто подписался на каналто таким образом можно узнать число людейкоторые получили это сообщение.</​note>​
    
-Запрос выборки из pipes_messages вернёт историю сообщений в канале если функция сохранения истории включена для этого канала.+Запрос выборки из pipes_messages вернёт историю сообщений в каналеесли функция сохранения истории включена для этого канала.
 <code sql> <code sql>
 mysql> select * from pipes_messages where name = "​p10";​ mysql> select * from pipes_messages where name = "​p10";​
Строка 91: Строка 119:
 Введите имя канала "​pipe_name"​ и нажмите подписаться. Введите имя канала "​pipe_name"​ и нажмите подписаться.
 <​html>​ <​html>​
-<iframe src="//​comet-server.ru/​doc/​example/​7/​subscriptionTest.php"​ width="​910px"></​iframe>​+<iframe src="//​comet-server.com/​doc/​example/​7/​subscriptionTest.php"​ width="​910px"></​iframe>​
 </​html>​ </​html>​
 А теперь с помощью online командной строки расположенной в углу экрана выполните запрос вставки в pipes_messages ​ и увидите что сообщение дошло. А теперь с помощью online командной строки расположенной в углу экрана выполните запрос вставки в pipes_messages ​ и увидите что сообщение дошло.
Строка 118: Строка 146:
 Теперь введите имя канала "​web_admins"​ и нажмите подписаться. Теперь введите имя канала "​web_admins"​ и нажмите подписаться.
 <​html>​ <​html>​
-<iframe src="//​comet-server.ru/​doc/​example/​7/​subscriptionTest.php"​ width="​910px"></​iframe>​+<iframe src="//​comet-server.com/​doc/​example/​7/​subscriptionTest.php"​ width="​910px"></​iframe>​
 </​html>​ </​html>​
 А теперь выполните запрос ещё раз и увидите что подписчиков в канале стало больше. А теперь выполните запрос ещё раз и увидите что подписчиков в канале стало больше.
Строка 245: Строка 273:
   * [[comet:​javascript_api|JavaScript API]]   * [[comet:​javascript_api|JavaScript API]]
   * [[comet:​testhosting|Почему скрипт работает на локальной машине и не работает на хостинге?​ ]]   * [[comet:​testhosting|Почему скрипт работает на локальной машине и не работает на хостинге?​ ]]
-  * [[comet:faq:​public_key|Что такое и зачем нужен "​Публичный идентификатор разработчика"​ и "​Секретный ключ разработчика"?​]]+  * [[comet:dev_id|Что такое и зачем нужен "​Публичный идентификатор разработчика"​ и "​Секретный ключ разработчика"?​]]
   * [[comet:​faq:​send-message-to-pipe|Как отправить сообщение в произвольный канал и как его потом получить на другой странице?​]]   * [[comet:​faq:​send-message-to-pipe|Как отправить сообщение в произвольный канал и как его потом получить на другой странице?​]]
   * [[comet:​faq:​realtime-users-list|Как реализовать механизм отслеживания вхождения пользователей на сайт. То есть список посетителей обновляющийся на "​лету"?​]]   * [[comet:​faq:​realtime-users-list|Как реализовать механизм отслеживания вхождения пользователей на сайт. То есть список посетителей обновляющийся на "​лету"?​]]
 +  * [[comet:​saas|Могут ли влиять одни пользователи сервиса на других пользователей?​]] ​ * 
 +  * [[comet:​faq:​access-to-channels-for-outsiders|Может ли кто то посторонний получать сообщение из каналов]]
  
 ====== Зарезервированные имена каналов ====== ====== Зарезервированные имена каналов ======