Довелось мне написать однажды достаточно полу-кривой онлайн-чат на чистом OctoberCMS.
Все делал через Ajax фреймворк октября, получился достаточно обычный, и в то-же время рабочий чатик)
Делал так:
Сделал обычный список
<ul>
<li class="person"></li>
<li class="you"></li>
</ul>
под ним сделал
<form data-request="onSend">
<textarea name="message"></textarea>
<button type="submit"></button>
</form>
В хандлере onSend() я просто получалInput::get('message');
И сохранял в модель.
А чтобы "сообщения" доходили в "риал-тайме" я добавил в чат скрипт, который вызывал хандлер onUpdate()
каждую 2 секунды. Он получал новые сообщения и делал обновления фрагмента через renderPartial
Это очень тупо и глупо, правильнее делать через вебсокеты, примеров в интернете полно, и это достаточно просто.
Но надо было сделать быстро и сейчас из того что умел. Использовал то что было)