<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум ReadyScript &mdash; Возможность организации COMET сервера]]></title>
	<link rel="self" href="https://forum.readyscript.ru/feed/atom/topic/1786" />
	<updated>2019-04-26T08:55:39Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.readyscript.ru/topic/1786/vozmozhnost-organizatsii-comet-servera/</id>
		<entry>
			<title type="html"><![CDATA[Re: Возможность организации COMET сервера]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9884/#p9884" />
			<content type="html"><![CDATA[<p>Про сокеты помним ) , но сейчас большинство пользователей на шаред-хостингах прекрасно работают.</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://forum.readyscript.ru/user/2/</uri>
			</author>
			<updated>2019-04-26T08:55:39Z</updated>
			<id>https://forum.readyscript.ru/post/9884/#p9884</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Возможность организации COMET сервера]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9882/#p9882" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>admin пишет:</cite><blockquote><p>Вебсокеты не совсем подходят, так как на шаред хостингах их не развернешь.</p></blockquote></div><p>Так ведь и продукт ваш для шареда не очень подходит.<br />Вернее, как - задачи, которые можно решить на RS, нельзя уже решить на шареде.<br />Простой корпсайт с каталогом в 400 позиций можно сделать на шареде, а вот всё остальное - выше.</p><p>Так что, про сокеты не забывайте :]</p>]]></content>
			<author>
				<name><![CDATA[Polo Art]]></name>
				<uri>https://forum.readyscript.ru/user/535/</uri>
			</author>
			<updated>2019-04-26T06:04:07Z</updated>
			<id>https://forum.readyscript.ru/post/9882/#p9882</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Возможность организации COMET сервера]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9881/#p9881" />
			<content type="html"><![CDATA[<p>Учитывая специфику работы данного механизма, не думаю что на любом хостинге можно сделать это для клиентов. Админов все же обычно не много, а тут должно висеть соединение постоянно с каждым. </p><p>Теоретически наши классы то можно задействовать и в клиентской части с минимальными правками, но большинство хостингов не дадут держать так много долгих php соединений.</p>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://forum.readyscript.ru/user/2/</uri>
			</author>
			<updated>2019-04-25T22:09:29Z</updated>
			<id>https://forum.readyscript.ru/post/9881/#p9881</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Возможность организации COMET сервера]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9880/#p9880" />
			<content type="html"><![CDATA[<p>Спасибо за ответ! А тоже самое для фронтэнда возможно реализовать? Для построения решений, аналогичных моему модулю с оповещениями о товаре в корзине</p>]]></content>
			<author>
				<name><![CDATA[Ярослав]]></name>
				<uri>https://forum.readyscript.ru/user/74/</uri>
			</author>
			<updated>2019-04-25T20:55:24Z</updated>
			<id>https://forum.readyscript.ru/post/9880/#p9880</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Возможность организации COMET сервера]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9878/#p9878" />
			<content type="html"><![CDATA[<p>Хотели чуть позже на этот счет новость с подробностями описать. </p><p>Если коротко, то готовим базовые функции, чтобы можно было сделать интеграцию с телефонией в админке.<br />Для этого нужно мгновенно передавать события (которые будут приходить через Вебхуки от телефонии) из PHP администратору. </p><p>Всего бывает 2 проверенных временем варианта - WebSocket и LongPolling запросы.<br />Вебсокеты не совсем подходят, так как на шаред хостингах их не развернешь. <br />Соответственно остался второй вариант.</p><p>Модуль, который захочет передавать информацию, должен будет включить LongPolling нужному админку, внутри события start.</p><div class="codebox"><pre><code>\Main\Model\Comet\LongPolling::getInstance()-&gt;enable();</code></pre></div><p>Затем при возникновении события, в PHP можно вызвать:<br /></p><div class="codebox"><pre><code>$data = [&#039;param1&#039; =&gt; &#039;value1&#039;]; //Любые данные
$user_id = 123; //ID админа, кому сообщение 
$expire = 20; //Максимальная актуальность сообщения в секундах, если получатель его не получил за это время, то оно удаляется.
$event_name = &#039;test&#039;; //Произвольное имя события

\Main\Model\Comet\LongPolling::getInstance()-&gt;pushEvent($event_name, $data, $user_id, $expire)</code></pre></div><p>При этом как только в PHP будет вызван pushEvent, в JS сразу будет срабатывать событие rs-event-{$event_name} на элементе body</p><p>То есть его мгновенно можно перехватывать:<br /></p><div class="codebox"><pre><code>$(&#039;body&#039;).on(&#039;rs-event-test&#039;, function(e, data) {
      //data - данные
});</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>https://forum.readyscript.ru/user/2/</uri>
			</author>
			<updated>2019-04-25T19:21:57Z</updated>
			<id>https://forum.readyscript.ru/post/9878/#p9878</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Возможность организации COMET сервера]]></title>
			<link rel="alternate" href="https://forum.readyscript.ru/post/9876/#p9876" />
			<content type="html"><![CDATA[<p>В списке изменений увидел &quot;Добавлена возможность организации COMET сервера&quot;<br />Можете подробнее про данную возможность рассказать?</p>]]></content>
			<author>
				<name><![CDATA[Ярослав]]></name>
				<uri>https://forum.readyscript.ru/user/74/</uri>
			</author>
			<updated>2019-04-25T09:01:31Z</updated>
			<id>https://forum.readyscript.ru/post/9876/#p9876</id>
		</entry>
</feed>
