Обзор: Добавьте голосовые комнаты в стиле Discord в свое сообщество 🎙

Это только для Enterprise или может работать на Professional?

Для Discourse нет тарифа «Professional»? Да, но поскольку это не #официальный вариант, его можно установить только на самом высоком тарифе — Enterprise.

Эм! Он есть?!

Источник: https://discourse.org/buy

1 лайк

Кажется, я никогда не связывал «Pro» с «Professional»…

1 лайк

Разве Pro — это сокращение от Proфессиональный?

Верно, но я бы ожидал, что Professional будет выше, чем Business (отсюда и Pro?)

@Falco Я завершил интеграцию, однако мне пришлось отказаться от базового WebRTC в пользу SDK SFU, работающего в отдельном контейнере Docker. Кроме того, я создал отдельный интерфейс, отличный от вашей стандартной боковой панели, и добавил возможности прямой трансляции для случаев, когда аудиодискуссия предназначена для большой аудитории.

Запуск и остановку можно выполнить как через веб-интерфейс Discourse, так и через Domniq — предварительный просмотр нативного Android+iOS приложения для Discourse. Доступны элементы управления администратором и управление комнатой.

Я не фокусировался на чате в стиле Discord, а скорее адаптировал концепцию Clubhouse X/Spaces из ядра вашего плагина, хотя я сохранил упоминание ваших заслуг.

4 лайка

Я добавил видео: теперь функции демонстрации экрана и веб-камеры доступны через параметр сайта в плагине.

17 лайков

@Falco Как скоро мы сможем попробовать размещённый форум? Это так здорово, просто сейчас не можем его протестировать :slight_smile:

Поскольку это не официальная версия, вам потребуется план Enterprise или самостоятельное размещение.

Похоже, возникла проблема совместимости с экземплярами, работающими на ESR: плагин не загружается с ошибкой

Uncaught (in promise) Error: Could not find module discourse/blocks imported from discourse/plugins/resenha/discourse/components/resenha-anon-rooms-block
f loader.js:247
f loader.js:258
findDeps loader.js:168
f loader.js:262
findDeps loader.js:168
f loader.js:262
requireModule loader.js:24
iI app.js:228
iN app.js:251
start app.js:210
start app.js:225
start-app.js:19
loader.js:247:1

Это ломает макет списка тем в теме Horizon.

Попытка использовать экспериментальные плагины с Discourse ESR — не лучшая стратегия.

Если хотите использовать этот плагин, оставайтесь на последней версии.

5 лайков

Я надеялся, что существуют механизмы вроде d-compat, чтобы обеспечить совместимость старых версий Discourse в таких случаях! :sad_but_relieved_face:

Переход на последнюю версию для этого экземпляра не вариант, так что, видимо, плагин останется отключённым.

2 лайка

Для официальных плагинов, используемых на рабочих серверах, такие механизмы действительно есть, но неразумно ожидать их для каждого эксперимента, который мы выпускаем.

2 лайка

Принято :+1:

(Двадцать символов)

Сегодня быстро пообщался с @Falco и ещё парой человек через этот плагин — было весело!

Я как раз переписывался с @markvanlan по другому поводу и заметил иконку микрофона рядом с его аватаркой. Решил заглянуть в чат канала Watercooler и увидел несколько лиц, которые я не вижу очень часто.

Круто посмотреть, чем вы тут занимаетесь, Falco.

4 лайка

Мы недавно провели внутреннюю встречу по этому плагину, вот что произошло:

LLM-резюме за последние две недели в Resenha

:sparkles: Новые возможности

  • Постоянный чат в комнате — привяжите голосовую комнату к каналу чата Discourse; каждая сессия открывает полноценную тему с реакциями, редактированием и загрузками. После настраиваемого таймаута бездействия создается новая тема.
  • Передача аудио при демонстрации экрана — аудио из вкладок и системы теперь передается вместе с демонстрацией экрана по отдельному потоку, отдельно от микрофона. Учитываются индивидуальные настройки громкости/беззвучного режима/отключения звука для каждого пользователя.
  • Модальное окно настроек звука — выбор устройств ввода/вывода, индикатор уровня микрофона в реальном времени и настройка порога шумоподавления. Настройки сохраняются для каждого устройства и применяются во время звонка без необходимости повторного согласования.
  • Виджет с изменяемым размером — изменение размера перетаскиванием за левый верхний угол, якорь в правом нижнем углу, размер сохраняется. Новое состояние «свернутый» показывает только кнопки «Развернуть» и «Выйти». Видеопотоки корректно отображаются в режиме виджета.

:artist_palette: UX

  • Иконки статуса участников в боковой панели (беззвучный режим/отключение звука/демонстрация экрана/камера/PTT) теперь отображаются вместе на правом краю; анимация звуковой волны появляется над аватаром при разговоре.
  • Голосовые комнаты теперь видны в полноэкранной боковой панели чата.
  • Настройка сайта prioritize_username_in_ux учитывается в видеоплитках и блоке анонимных комнат.
  • Исправлен z-index виджета для мобильных меню; восстановлена кнопка изменения размера SE; кнопке привязки добавлена корректная ariaLabel.

:bug: Исправления

  • Макет видеосетки застревал на полноэкранных размерах после выхода из полноэкранного режима.
  • Счетчики участников в боковой панели изменялись для пользователей, не являющихся участниками (нацеливание трансляции + Redis + очистка на клиенте).
  • Звуковые сигналы не работали на Android (AudioContext теперь возобновляется перед воспроизведением; общий singleton избегает ограничения контекста).
  • Удаленное видео не отображалось, когда peer начинал публикацию после начального рукопожатия.
  • Устаревшее нацеливание трансляции участников.

Если кто-то использует этот плагин, буду рад услышать отзывы о последних изменениях.

11 лайков

Отличное улучшение функционала. Насколько реально применить это к плагину событий? Можно ли создать хук, который будет отображаться в теме событий? Это перенаправит пользователя на полный просмотр вне боковой панели?

Я заметил, что многие форумы не используют боковую панель в Discourse, а вместо этого применяют выпадающее меню в шапке. Как это влияет на Resenha? Планируется ли сделать его отдельным всплывающим интерфейсом чата? Подобно текущей панели каналов и личных сообщений.

2 лайка

Возможно, это будет реализовано в будущем, но на данный момент у нас нет таких планов. Может быть, это будет что-то вроде того, что когда у события есть комната Resenha на его URL-адресе, за 5 минут до события мы отправляем уведомления внутри приложения, push-уведомления и электронные письма, которые при нажатии перенаправляют пользователя на /resenha/r/#{room.slug}, чтобы он сразу попал в комнату события.

Честно говоря, не имею понятия, это далеко не в моем списке приоритетов :laughing:.

Мы недавно добавили оба варианта, так что у вас есть всплывающий виджет:

и полноэкранный вид:

Так что технически его можно использовать, пока вы разместите ссылку на комнату в каком-нибудь месте, где ваши пользователи смогут ее найти.

4 лайка

Только что посмотрел демо — это огромный шаг вперёд, действительно впечатляющая работа. Как я упоминал в своём предыдущем посте, я выбрал LiveKit SDK для обработки аудио в больших группах, с использованием страницы вещания, передающей поток на YouTube. Ваш новый полноэкранный вид для комнат выглядит более надёжным, поэтому я подробнее изучу, сможет ли текущее обновление обеспечить непрерывность работы для моих задач во время ресенхи.