Отлично! @downey, не могли бы вы попробовать это с вашим сервером Jitsi? У меня сейчас его нет, но, возможно, я захочу его настроить.
У меня как раз возникли трудности с семейным звонком через GoToMeeting, и я был бы заинтересован в том, чтобы попробовать что-то новое, что просто встраивается в тему на Discourse. Тем лучше, если это будет Jitsi!
Есть ли опасения по поводу использования бесплатного сервера, предоставляемого Jitsi?
Мы его протестировали, и он отлично работает примерно для 10 человек. При 20+ участниках производительность становится непригодной для использования, поэтому для групповых звонков с большим количеством участников, а также для интеграции с Slack и Etherpad, вам стоит запустить собственный экземпляр.
Кстати, тестирование Jitsi у нас прекратилось, потому что Jitsi предлагает мобильным пользователям установить приложение, по крайней мере на iOS. Мы снова рассматриваем BigBlueButton, который работает через браузер как на мобильных устройствах, так и на настольных компьютерах.
Интересно, не заинтересуется ли @pmusaraj изучением их API, чтобы посмотреть, насколько часть работы, проделанной над этим компонентом, может быть применена и там…
Помогает ли то, что ваши пользователи также могут звонить? К слову, приложение для iOS отличное, к тому же оно полностью с открытым исходным кодом и, насколько мне известно, очень простое в использовании. Я заметил, что приложение по сути является копией приложения Zoom для iOS и Android, которым пользуются почти все мои знакомые.
Я имею в виду, что если у меня есть выбор между видеоконференцией, которая работает нативно, и той, для которой требуется приложение, я, скорее всего, откажусь от установки дополнительного приложения.
Это отчасти (но не полностью) похоже на то, как если бы всех, кто хочет вести любую беседу, заставляли использовать платформу Discourse на meta.
Да, это правда, и я ещё не продумал последствия использования мобильного интерфейса, встроенного в Discourse таким образом.
Я тоже слышал много хорошего о BBB, особенно для мероприятий в формате «вебинаров». Было бы здорово, если бы была и интеграция с ним
Насколько мне известно, всё наоборот: Zoom за последние годы скопировал много элементов интерфейса и пользовательского опыта у Jitsi и других инструментов для веб-конференций.
Кстати, при настройке компонента темы для использования моей собственной установленной версии Jitsi возникает ошибка. Обычный синтаксис URL-адреса комнаты работает нормально, но по какой-то причине при попытке использовать кнопку появляется ошибка 404. К сожалению, на этой неделе у меня не будет времени на устранение неполадок…
Есть ли возможность добавить генератор случайных слов для создания комнат? Или, может быть, использовать временную метку/эпоху? Каждый раз, когда я создаю комнату в Discourse, у меня возникает тупик.
Насколько улучшается производительность Jitsi при использовании собственного экземпляра? Мне казалось, что после установления соединения связь осуществляется напрямую между участниками (peer-to-peer).
Нам нужно решение, способное справляться с большими группами, и в текущем виде (используя meet.jit.si) качество часто оказывается недостаточным даже для звонков один на один.
Возможно, им стоит предложить платную опцию хостинга в дополнение к варианту с самостоятельным размещением… это могло бы помочь выявить проблемы в программном обеспечении в масштабе
Я считаю, что основная проблема заключается в том, что для развёртываний любого масштаба jitsi-videobridge действительно требует выделенного хоста, при этом компонент jitsi-meet должен устанавливаться отдельно. Первый является сервером потоковой передачи, тогда как Meet предоставляет только фронтенд.
К сожалению, наиболее распространённый путь установки — это полуавтоматическое развёртывание на одном хосте. Их быстрая установка полностью работает в Docker и очень проста.
Подробная ручная установка, которая позволяет развёртывать компоненты отдельно, может быстро отпугнуть новичков.
Мне не удаётся заставить это работать, даже с сервером по умолчанию meet.jit.si. Что бы я ни ввёл в качестве идентификатора встречи, вместо видеовстречи появляется серое окно.
Привет, Тобиас, у меня всё работает (в Chrome и Firefox), версия 2.5.0 beta2, несколько плагинов, свежий сервер Jitsi, установленный примерно 48 часов назад…
Хм… в консоли много ошибок. Это происходит и на моём личном экземпляре, и на новом созданном тестовом сайте. Я использую сервер по умолчанию meet.jit.si, никаких изменений в настройках компонентов темы не вносил.
У меня пока нет собственного сервера Jitsi, и я думал, что всё заработает из коробки…
нажмите, чтобы увидеть
Logger.js:154 2020-04-11T19:21:21.250Z [modules/util/JitsiLocalStorage.js] <new <anonymous>>: DOMException: Не удалось прочитать свойство 'localStorage' из 'Window': Доступ к этому документу запрещён.
at new <anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:197547)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:197486)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:197742)
at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:98101)
at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:101984)
at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:222225)
at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:213733)
at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:29:196138)
at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:154819)
at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:63:41390)
at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:53082)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:55490)
at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:165081)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:54:166745)
at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:126:292708)
at Object.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:126:323867)
at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
at Module.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:222:80217)
at n (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:110)
at https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:908
at https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:1:919
o @ Logger.js:154
(anonymous) @ JitsiLocalStorage.js:42
(anonymous) @ JitsiLocalStorage.js:77
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:63
n @ bootstrap:19
(anonymous) @ AuthHandler.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ connection.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ conference.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:126
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:222
n @ bootstrap:19
(anonymous) @ bootstrap:83
(anonymous) @ app.bundle.min.js?v=3962.622:1
Показать ещё 2 фрейма
Logger.js:154 2020-04-11T19:21:21.252Z [features/local-recording] <Object._loadMetadata>: Не удалось разобрать элемент localStorage.
o @ Logger.js:154
_loadMetadata @ SessionManager.js:170
(anonymous) @ SessionManager.js:152
(anonymous) @ SessionManager.js:435
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:29
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:24
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:63
n @ bootstrap:19
(anonymous) @ AuthHandler.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ connection.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:54
n @ bootstrap:19
(anonymous) @ conference.js:1
(anonymous) @ app.bundle.min.js?v=3962.622:126
n @ bootstrap:19
(anonymous) @ app.bundle.min.js?v=3962.622:222
n @ bootstrap:19
(anonymous) @ bootstrap:83
(anonymous) @ app.bundle.min.js?v=3962.622:1
Logger.js:154 2020-04-11T19:21:21.309Z [index.web] <HTMLDocument.<anonymous>>: (TIME) документ готов: 432.6749999891035
react-dom.production.min.js:187 DOMException: Не удалось прочитать свойство 'localStorage' из 'Window': Доступ к этому документу запрещён.
at Oe._initStorage (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:16:45149)
at Oe.componentDidMount (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:16:44779)
at Oe.componentDidMount (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:223947)
at Gs (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:94889)
at t.unstable_runWithPriority (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:192:3884)
at fi (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:41540)
at Ws (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:90890)
at Ps (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:78509)
at fc (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:105337)
at hc (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:105412)
at https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:106607
at Bs (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:80044)
at _c (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:106592)
at Object.render (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:109864)
at HTMLDocument.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:222:80940)
La @ react-dom.production.min.js:187
Ga.n.callback @ react-dom.production.min.js:200
Hi @ react-dom.production.min.js:125
Bi @ react-dom.production.min.js:125
Gs @ react-dom.production.min.js:239
t.unstable_runWithPriority @ scheduler.production.min.js:20
fi @ react-dom.production.min.js:113
Ws @ react-dom.production.min.js:230
Ls @ react-dom.production.min.js:206
(anonymous) @ react-dom.production.min.js:114
t.unstable_runWithPriority @ scheduler.production.min.js:20
fi @ react-dom.production.min.js:113
gi @ react-dom.production.min.js:114
mi @ react-dom.production.min.js:113
Bs @ react-dom.production.min.js:208
_c @ react-dom.production.min.js:272
render @ react-dom.production.min.js:273
(anonymous) @ index.web.js:25
react-dom.production.min.js:114 Uncaught DOMException: Не удалось прочитать свойство 'localStorage' из 'Window': Доступ к этому документу запрещён.
at Oe._initStorage (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:16:45149)
at Oe.componentDidMount (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:16:44779)
at Oe.componentDidMount (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:24:223947)
at Gs (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:94889)
at t.unstable_runWithPriority (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:192:3884)
at fi (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:41540)
at Ws (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:90890)
at Ps (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:78509)
at fc (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:105337)
at hc (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:105412)
at https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:106607
at Bs (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:80044)
at _c (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:106592)
at Object.render (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:184:109864)
at HTMLDocument.<anonymous> (https://web-cdn.jitsi.net/meetjitsi_4004.656/libs/app.bundle.min.js?v=3962.622:222:80940)
gi @ react-dom.production.min.js:114
mi @ react-dom.production.min.js:113
Bs @ react-dom.production.min.js:208
_c @ react-dom.production.min.js:272
render @ react-dom.production.min.js:273
(anonymous) @ index.web.js:25
react-dom.production.min.js:187 TypeError: Cannot read property 'dispatch' of undefined
at Oe.componentWillUnmount (BaseApp.js:100)
at react-dom.production.min.js:187
at Ra (react-dom.production.min.js:189)
at Ua (react-dom.production.min.js:195)
at Gs (react-dom.production.min.js:235)
at t.unstable_runWithPriority (scheduler.production.min.js:20)
at fi (react-dom.production.min.js:113)
at Ws (react-dom.production.min.js:230)
at Ls (react-dom.production.min.js:206)
at react-dom.production.min.js:114
at t.unstable_runWithPriority (scheduler.production.min.js:20)
at fi (react-dom.production.min.js:113)
at gi (react-dom.production.min.js:114)
at mi (react-dom.production.min.js:113)
at Bs (react-dom.production.min.js:208)
at _c (react-dom.production.min.js:272)
at Object.render (react-dom.production.min.js:273)
at HTMLDocument.<anonymous> (index.web.js:25)
La @ react-dom.production.min.js:187
Ga.n.callback @ react-dom.production.min.js:200
Hi @ react-dom.production.min.js:125
Bi @ react-dom.production.min.js:125
Gs @ react-dom.production.min.js:239
t.unstable_runWithPriority @ scheduler.production.min.js:20
fi @ react-dom.production.min.js:113
Ws @ react-dom.production.min.js:230
Ls @ react-dom.production.min.js:206
(anonymous) @ react-dom.production.min.js:114
t.unstable_runWithPriority @ scheduler.production.min.js:20
fi @ react-dom.production.min.js:113
gi @ react-dom.production.min.js:114
mi @ react-dom.production.min.js:113
I @ scheduler.production.min.js:16
H @ scheduler.production.min.js:18
C @ scheduler.production.min.js:13
BaseApp.js:100 Uncaught TypeError: Cannot read property 'dispatch' of undefined
at Oe.componentWillUnmount (BaseApp.js:100)
at react-dom.production.min.js:187
at Ra (react-dom.production.min.js:189)
at Ua (react-dom.production.min.js:195)
at Gs (react-dom.production.min.js:235)
at t.unstable_runWithPriority (scheduler.production.min.js:20)
at fi (react-dom.production.min.js:113)
at Ws (react-dom.production.min.js:230)
at Ls (react-dom.production.min.js:206)
at react-dom.production.min.js:114
at t.unstable_runWithPriority (scheduler.production.min.js:20)
at fi (react-dom.production.min.js:113)
at gi (react-dom.production.min.js:114)
at mi (react-dom.production.min.js:113)
at Bs (react-dom.production.min.js:208)
at _c (react-dom.production.min.js:272)
at Object.render (react-dom.production.min.js:273)
at HTMLDocument.<anonymous> (index.web.js:25)