Forums / National / Russian / Модули и плагины / Плагин: Видео чат

dJemon
#1 2016-10-21 07:13

Помогите с реализацией плагина "Видео чат", советом или делом.

Процесс взаимодествия (работа чата):

Зависимость от плагина Onlinestatus. Если пользователь в сети, то у него в профиле или возле аватарки показывается кнопка [Связаться]. При нажатие на кнопку у звонящего появляется окно с фреймом внутри. А у звонимому приходит уведомление, что с вами хотят связаться и на экране появляется кнопка [Ответить], при нажатие на которую появляется окно с фреймом внутри.

Фрейм представляет из себя html тег IFRAME указывающий на страницу по адресу https://appr.tc/r/GUID-КОМНАТЫ. GUID-комнаты представляет из себя GUID, он создается и хранится в базе SQL как связка между пользоателем №1 и №2.

Таблица в SQL - это три колонки: userid_1, userid_2, guid. Поиск существования комнаты соответственно так: "... WHERE (userid_1 = $uid1 AND userid_2 = $uid2) OR (userid_1 = $uid2 AND userid_2 = $uid1)".

P.S. Вроде ничего сверх-естественного нет, но это мой первый опыт создания плагинов.

Macik
#2 2016-10-21 23:57

Если GUID это некий уникальный идентификатор, а чат, как я понимаю, предполагается только тет-а-тет (т.е. 2 участника), то таблица для хранения, по сути, не нужна. Т.к. идентификатор можно формировать на основе ID пользователей участников и он будет однозначно идентифицировать пару. Простейший вариант хеш от строки «некий_секрет|id_user1|id_user2». И это хеш посылать принимающей стороне.

https://github.com/macik
правильный хостинг — https://goo.gl/fjCa1F
dJemon
#3 2016-10-22 12:23
#42223 Macik:

Если GUID это некий уникальный идентификатор, а чат, как я понимаю, предполагается только тет-а-тет (т.е. 2 участника), то таблица для хранения, по сути, не нужна. Т.к. идентификатор можно формировать на основе ID пользователей участников и он будет однозначно идентифицировать пару. Простейший вариант хеш от строки «некий_секрет|id_user1|id_user2». И это хеш посылать принимающей стороне.

В принципе можно и так! Сразу избавляет от: нескольких лишних запросов к базе и пары строк кода.

Добавлено 1 день спустя:

Каким образом реализовать взаимодествие по передаче хэша? Есть что-то подходящее из коробки в cot? или использование доп.таблицы в базе или луше через Redis?

This post was edited by dJemon (2016-10-24 08:44, 7 years ago)