Может быть полезно для использования комет сервера в среде где нет javascript интерпритатора
Комет сервер отправляет данные в формате json
Параметры подключения определены в url запроса на подключение. В них важен порядок следования параметров в адресе и регистр. Все параметры обязательны но могут иметь пустое значение.
Пример запроса на подключение:
wss://app.comet-server.ru/ws/sesion=undefined&myid=undefined&devid=15&v=3.31&uuid=Db_YTZOMMQc902yluqo7mLns3RXWFz2t&api=js
Параметры:
После подключения комет сервер отправит в ответ статус авторизации. От других типов сообщений это сообщение отличается тем что содержит поле authorized
{ {"data": "токен авторизации"}, {"pipe": "sys"}, {"event": "serverInfo"}, {"server": MYSQL_SERVERNAME}, {"authorized": true} }
При наступлении события комет сервер отправляет сообщение в формате json, до версии 4.0 некоторые сообщения в json могут быть закодированы в base64.
Каждое сообщение отделено переносом строки. За раз может прийти несколько сообщений разделённых переносом строки.
Сообщение имеет следующие поля:
Для подписки на события надо отправить текстовое сообщение следующего вида
subscription pipe1 pipe2 pipe3
Ключевое слово subscription потом \n а потом список каналов на которые подписываемся разделённые переносом строки \n
Обратите внимание что подписка осуществляется на канал. Имена событий которые мы ожидаем отправлять не надо.
Ответ на этот запрос не предусмотрен.
Для того чтобы отписаться от некоторых каналов надо отправить заново список каналов на которые мы подписаны за исключением тех на которые мы не подписаны.
Подписываться на канал msg не надо. Личные сообщения доходят всегда если мы авторизованны.
Чтобы отправить сообщение в канал аналогично функции web_pipe_send из JavaScript апи надо отправить сообщение какого вида:
web_pipe2\nPipe_name\nEvent_name\n*\nMessage
Чтобы получить несколько последних сообщений из канала аналогично функции get_pipe_log из JavaScript апи надо отправить сообщение какого вида:
pipe_log\nPipe_name\nMarker\n
Аналог функции count_users_in_pipe из JavaScript апи
pipe_count\nPipe_name\nMarker\n