Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
comet:ws-api [2018/06/03 05:58] levhav |
comet:ws-api [2019/12/18 01:58] (текущий) |
||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | Описание прямого взаимодействия с комет сервером по протоколу websockets | + | ====== Описание прямого взаимодействия с комет сервером по протоколу websockets ====== |
| Может быть полезно для использования комет сервера в среде где нет javascript интерпритатора | Может быть полезно для использования комет сервера в среде где нет javascript интерпритатора | ||
| Комет сервер отправляет данные в формате json | Комет сервер отправляет данные в формате json | ||
| - | С версии 4.1 будет принимать тоже большую часть запросов в json формате, а пока принимает в текстовом формате. | ||
| - | + | ====== Авторизация ====== | |
| - | === Авторизация === | + | |
| Параметры подключения определены в url запроса на подключение. | Параметры подключения определены в url запроса на подключение. | ||
| Строка 37: | Строка 35: | ||
| </code> | </code> | ||
| - | === Сообщения приходящие от комет сервера === | + | ====== Сообщения приходящие от комет сервера ====== |
| При наступлении события комет сервер отправляет сообщение в формате json, до версии 4.0 некоторые сообщения в json могут быть закодированы в base64. | При наступлении события комет сервер отправляет сообщение в формате json, до версии 4.0 некоторые сообщения в json могут быть закодированы в base64. | ||
| Строка 51: | Строка 49: | ||
| + | ====== Подписка на события ====== | ||
| + | Для подписки на события надо отправить текстовое сообщение следующего вида | ||
| + | <code> | ||
| + | subscription | ||
| + | pipe1 | ||
| + | pipe2 | ||
| + | pipe3 | ||
| + | </code> | ||
| + | Ключевое слово subscription потом \n а потом список каналов на которые подписываемся разделённые переносом строки \n | ||
| + | Обратите внимание что подписка осуществляется на канал. Имена событий которые мы ожидаем отправлять не надо. | ||
| + | |||
| + | Ответ на этот запрос не предусмотрен. | ||
| + | |||
| + | Для того чтобы отписаться от некоторых каналов надо отправить заново список каналов на которые мы подписаны за исключением тех на которые мы не подписаны. | ||
| + | |||
| + | Подписываться на канал msg не надо. Личные сообщения доходят всегда если мы авторизованны. | ||
| + | |||
| + | ====== Отправка сообщений в канал ====== | ||
| + | |||
| + | Чтобы отправить сообщение в канал аналогично функции web_pipe_send из JavaScript апи надо отправить сообщение какого вида: | ||
| + | |||
| + | <code> | ||
| + | web_pipe2\nPipe_name\nEvent_name\n*\nMessage | ||
| + | </code> | ||
| + | |||
| + | * web_pipe2 - ключевое слово | ||
| + | * Pipe_name - имя канала | ||
| + | * Event_name - имя события | ||
| + | * * - всегда так отправляем так как этот параметр устарел и в дальнейшем не будет поддерживаться | ||
| + | * Message - само сообщение (можно закодировать его в json) | ||
| + | |||
| + | ====== Получение последних сообщений из канала ====== | ||
| + | |||
| + | Чтобы получить несколько последних сообщений из канала аналогично функции get_pipe_log из JavaScript апи надо отправить сообщение какого вида: | ||
| + | |||
| + | <code> | ||
| + | pipe_log\nPipe_name\nMarker\n | ||
| + | </code> | ||
| + | |||
| + | * pipe_log - ключевое слово | ||
| + | * Pipe_name - имя канала | ||
| + | * Marker - случайное число из 10 символов. Ответ на этот запрос тоже будет содержать поле marker с этим числом для того чтоб вы могли понять на какой из запросов пишёл ответ. | ||
| + | |||
| + | <note tip>Поле marker везде себя ведёт так же как и тут. Оно используется чтоб при получении ответа вы знали на что именно пришёл ответ</note> | ||
| + | |||
| + | ====== Получение количества подписчиков в канале ====== | ||
| + | |||
| + | Аналог функции count_users_in_pipe из JavaScript апи | ||
| + | |||
| + | <code> | ||
| + | pipe_count\nPipe_name\nMarker\n | ||
| + | </code> | ||
| + | * pipe_count - ключевое слово | ||
| + | * Pipe_name - имя канала | ||
| + | * Marker - случайное число из 10 символов. | ||