Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
comet:cometql [2017/05/27 16:23]
levhav [Таблица pipes_messages]
comet:cometql [2018/04/13 02:39]
levhav [Обёртки над CometQL api]
Строка 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>​
 Вот что мы увидим Вот что мы увидим
Строка 77: Строка 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 =====
  
Строка 90: Строка 93:
 </​code> ​ </​code> ​
  
-Поля "​name"​ и "​event"​ должны соответствовать следующему <​abbr>​Цифры от 0 до 9 буквы английского алфавита и знаки = + / _(регулярному выражению ^[0-9A-z=+/​_]{3,​64}$)</​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";​
Строка 116: Строка 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 ​ и увидите что сообщение дошло.
Строка 143: Строка 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>​
 А теперь выполните запрос ещё раз и увидите что подписчиков в канале стало больше. А теперь выполните запрос ещё раз и увидите что подписчиков в канале стало больше.
Строка 270: Строка 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:faq:​isolation-of-users|Могут ли влиять одни пользователи сервиса на других пользователей?​]] ​ * +  * [[comet:saas|Могут ли влиять одни пользователи сервиса на других пользователей?​]] ​ * 
   * [[comet:​faq:​access-to-channels-for-outsiders|Может ли кто то посторонний получать сообщение из каналов]]   * [[comet:​faq:​access-to-channels-for-outsiders|Может ли кто то посторонний получать сообщение из каналов]]
  
Строка 291: Строка 294:
  
 Если вы написали обёртку для работы с CometQL api для какого нибудь фреймворка то будет здорово если вы поделитесь своей наработкой с другими пользователями. Присылайте ссылки на репозиторий с вашей обёрткой на  support@comet-server.com ​ Если вы написали обёртку для работы с CometQL api для какого нибудь фреймворка то будет здорово если вы поделитесь своей наработкой с другими пользователями. Присылайте ссылки на репозиторий с вашей обёрткой на  support@comet-server.com ​
 +
 +====== Примечание ======
 +
 +Для пользователей опенсорс версии полезно понимать что запросы попадающие в CometQL не передаются в бд комет сервера в MySQL они парсятся собственным парсером комет сервера. И таблицы из CometQL не являются прямым отражением таблиц из CometQL. ​