Pull to refresh
1
0
Трапенок Виктор Викторович @Levhav

Разработка realtime чатов

Send message

Доклад — обзор возможностей и архитектуры комет сервера CppComet

Reading time6 min
Views2.7K
Это текст доклада и видеозапись моего выступления с конференции rumeetup.ru приведённый в удобный для чтения вид. Так же я изъял часть вступления чтоб не отнимать время у читателей на лирические отступления о причинах побудивших меня начать разработку своего Open source комет сервера с нуля на C++.
Total votes 4: ↑4 and ↓0+4
Comments0

Добавляем реактивность в строковые шаблонизаторы

Reading time3 min
Views3.8K
Одним из преимуществ строковых шаблонизаторов таких как JUST.js, jqueryTmpl или handlebarsjs перед шаблонизаторами на основе виртуального DOM дерева (VUE.js, angular) это низкий порог вхождения и простота в использовании. Ещё как мне кажется со строковыми шаблонизаторами проще интегрировать плагины для jquery.

Однако возможность реактивного связывания данных модели с шаблоном действительно удобный инструмент, и после того как я пробовал VUE.js и angular мне стало очень не хватать этого в моём любимом шаблонизаторе JUST.JS.

В итоге я решил добавить одностороннее реактивное связывание данных в JUST.JS, а в итоге получилось решение которое можно использовать практически с любым строковым шаблонизатором.
Total votes 11: ↑7 and ↓4+3
Comments3

Использование comet сервера для реализации простого чата

Reading time4 min
Views30K
Comet — любая модель работы веб-приложения, при которой постоянное HTTP-соединение позволяет веб-серверу отправлять (push) данные браузеру без дополнительного запроса со стороны браузера.

На схеме изображено место комет сервера в процессе работы.

На схеме изображено место комет сервера в процессе работы.

Читать дальше →
Total votes 12: ↑8 and ↓4+4
Comments12

Шифрование на JavaScript с использованием библиотеки pidCrypt

Reading time3 min
Views26K
pidCrypt это open source библиотека криптографических алгоритмов. Поддерживает RSA и AES шифрование/дешифрование, и расчёт MD5 и SHA хэшей.
Читать дальше →
Total votes 6: ↑2 and ↓4-2
Comments7

Создаём простой Realtime чат

Reading time3 min
Views5.3K
В этой статье будет рассмотрен пример простого чата между пользователями где все пользователи общаются в одной общей комнате. Чат будет создан с использованием saas комет сервиса. Для реализации чата не потребуется написания серверного кода, вместо этого будет использовано api комет сервера.
Читать дальше →
Rating0
Comments0

CometQL — api работы с комет сервером по протоколу MySQL

Reading time6 min
Views6.6K

CometQL — это api для работы с saas комет сервисом по протоколу MySQL.

Почему это круто


  • Единый api для более чем 12 языков программирования
  • Простой и понятный вид запросов
  • В php есть средства поддержания постоянных соединений с MySQL и теперь их можно так же использовать для работы с comet сервером.

Например для получения информации о том когда пользователь был online достаточно выполнить следующий запрос:
select id, time from users_time where id = 2;

А вот запрос для отправки сообщения в канал:
INSERT INTO pipes_messages (name, event, message)VALUES("pipe_name", "event_in_pipe", "text message");

Как подключится и попробовать самостоятельно


Вы можете сами подключится с демо данными и попробовать.
# Сервер app.comet-server.ru
# Логин 15
# Пароль lPXBFPqNg3f661JcegBY0N0dPXqUBdHXqj2cHf04PZgLHxT6z55e20ozojvMRvB8
# База данных CometQL_v1

# Строка для подключения из консоли
mysql -h app.comet-server.ru -u15 -plPXBFPqNg3f661JcegBY0N0dPXqUBdHXqj2cHf04PZgLHxT6z55e20ozojvMRvB8 -DCometQL_v1

Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments5

Реализация обмена сообщениями между вкладками браузера

Reading time6 min
Views17K
Это первая статья в нашем корпоративном блоге. На этот раз я расскажу о нашем решении задачи обмена сообщениями между вкладками браузера.

К примеру, мне потребовалось решить эту задачу при реализации JavaScript API к Comet сервису. Эта задача встречается достаточно часто и её уже рассматривали на хабре раньше здесь и здесь, но я решил написать своё решение задачи исходя из следующих требований к коду:

  • Кросбраузерность
  • Отсутствие зависимостей
  • Минимальный размер кода
  • Простота и удобство

Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments21

Sphinx — Распределённый поиск. Выполнение REPLACE для distributed индекса

Reading time3 min
Views11K
Статья нацелена на тех кто уже знает что такое Sphinx и SphinxQL
Цель: Обеспечить непрерывность работы поиска по сайту с помощью Sphinx в момент проведения технических работ над одной из нод Sphinx кластера.

Sphinx отличный инструмент для организации поиска по сайту. В проекте в котором я участвую поиск объявлений происходит с помощью Sphinx. Объявления хранятся в бд в EAV модели а поиск по ним выполняет Sphinx затем объявления извлекаются по найденным сфинксом идентификаторам. Таким образом если Sphinx перестанет работать то это скажется на всём сайте.

Для работы используются rt индексы sphinx для моментального внесения изменений в поисковую выдачу если какое либо объявление будет отредактировано или забанено. Пока это работало на одной ноде всё было хорошо до тех пор пока не возникало необходимости внести изменения в саму структуру индексов. Для изменения списка атрибутов в поисковом индексе необходимо было править конфигурацию, перезапускать сфинкс и выполнять переиндексацию объявлений. Для того чтобы это производить без остановки работы сайта решено было построить кластер с одной главной нодой фактически выполняющей роль балансировщика и двумя дочерними нодами содержащими индекс и являющимися зеркальными между собой.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments2

Пример примитивного веб сервера на С++ с использованием OpenSSL

Reading time4 min
Views10K
Давно хотел написать полезную статью и вот наконец нашёл подходящий информационный повод.

Речь в этой статье пойдёт о создании примитивного web сервера работающего по https протоколу. Мы на пишем серверную часть, а в качестве клиентской части будет выступать любой из браузеров.
В итоге мы получим максимально упрощённый пример примитивного web сервера который можно будет улучшать и затачивать под свои задачи.
Читать дальше →
Total votes 14: ↑8 and ↓6+2
Comments12

Information

Rating
Does not participate
Location
Владивосток, Приморский край, Россия
Date of birth
Registered
Activity