Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
comet:cometql [2017/02/22 03:22]
levhav [Как подключится и попробовать самостоятельно]
comet:cometql [2019/12/18 01:58] (текущий)
Строка 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>​
 Вот что мы увидим Вот что мы увидим
Строка 45: Строка 48:
 Пример подключения к комет серверу из php.  Пример подключения к комет серверу из php. 
 <code php> <code php>
-$dev_id = "​15";​ +$dev_id = "​15"; ​// Используется как логин 
-$dev_key = "​lPXBFPqNg3f661JcegBY0N0dPXqUBdHXqj2cHf04PZgLHxT6z55e20ozojvMRvB8";​+$dev_key = "​lPXBFPqNg3f661JcegBY0N0dPXqUBdHXqj2cHf04PZgLHxT6z55e20ozojvMRvB8"; ​// Используется как пароль
  
 // Подключение выглядит как будто мы подключились к бд. Можно использовать функции для работы с mysql // Подключение выглядит как будто мы подключились к бд. Можно использовать функции для работы с mysql
 +// Но на самом деле вы подключаетесь к комет серверу. ​
 $link = mysqli_connect("​app.comet-server.ru",​ $dev_id, $dev_key, "​CometQL_v1"​);​ $link = mysqli_connect("​app.comet-server.ru",​ $dev_id, $dev_key, "​CometQL_v1"​);​
 if(!$link) if(!$link)
-{+ 
     die("​Не удалось создать соединение c CometQL"​);​     die("​Не удалось создать соединение c CometQL"​);​
 } }
Строка 76: Строка 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 =====
  
Строка 89: Строка 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";​
Строка 115: Строка 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 ​ и увидите что сообщение дошло.
Строка 142: Строка 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>​
 А теперь выполните запрос ещё раз и увидите что подписчиков в канале стало больше. А теперь выполните запрос ещё раз и увидите что подписчиков в канале стало больше.
Строка 269: Строка 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|Может ли кто то посторонний получать сообщение из каналов]]
  
 ====== Зарезервированные имена каналов ====== ====== Зарезервированные имена каналов ======
Строка 288: Строка 294:
  
 Если вы написали обёртку для работы с CometQL api для какого нибудь фреймворка то будет здорово если вы поделитесь своей наработкой с другими пользователями. Присылайте ссылки на репозиторий с вашей обёрткой на  support@comet-server.com ​ Если вы написали обёртку для работы с CometQL api для какого нибудь фреймворка то будет здорово если вы поделитесь своей наработкой с другими пользователями. Присылайте ссылки на репозиторий с вашей обёрткой на  support@comet-server.com ​
 +
 +====== Примечание ======
 +
 +Для пользователей опенсорс версии полезно понимать что запросы попадающие в CometQL не передаются в бд комет сервера в MySQL они парсятся собственным парсером комет сервера. И таблицы из CometQL не являются прямым отражением таблиц из CometQL. ​