Запись о проблеме процесса создания сервера Jitsi
Запись о проблеме процесса создания сервера Jitsi

Jitsi — это система конференц-сервиса с открытым исходным кодом, основанная на WebRTC. Она в основном обеспечивает высококачественные, безопасные и масштабируемые бизнес-возможности видеоконференций!

Используйте схему архитектуры в руководстве по установке докера.

Используйте официальное руководство по установке(https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart),Никаких проблем, если установка прошла успешно.,И может плавно создавать и вводить интерфейс встречи человека.,Но возможно, он не сможет настроить функцию конференции для нескольких человек.,Из вопросов на github,Содержит много похожих вопросов,Когда в один конференц-зал входит более одного пользователя,Появится проблема «CONFERENCE FAILED: Conference.videobridgeNotAvailable» и «Failed» для выбора начального моста для участникаRegion=null».,Интерфейс Браузера постоянно обновляется.,И подобных вопросов много,Судя по ответам,В основном проблема с Конфигурацией видеомоста.,В результате jicofo не может обнаружить видеомост.,Конечно, я тоже столкнулся с этой проблемой,И настроив Конфигурацию,решил проблему,Основной процесс — обратиться к руководству по разработке.(https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-manual),Пройдите Конфигурацию каждого Служить еще раз.,Было обнаружено, что отсутствует действие добавления пользователя jvb типа xmppСлужить.,Но я не могу подтвердить, является ли это причиной,Сразу после этой операции,И после унифицированной модификации Конфигурационного файла,Эта проблема исправлена!

Добавьте пользователя xmpp:

Create conference focus user:

  720  prosodyctl register focus auth.meet.test.com 7aKQ5Jdi

Create conference jvb user:

  765  prosodyctl register jvb auth.meet.test.com i2AhIKMh

Дополнительное примечание: позже я перезапустил образ докера и обнаружил, что вышеуказанная ошибка возникла снова. Основная идея заключалась в том, что видеомост не был зарегистрирован на jicofo. С этой точки зрения выяснилось, что имя хоста было изменено, что привело к. видео-бридже не регистрироваться На просодии, после повторной модификации имени хоста проблема больше не возникает!

root@2e5ee1f22bc9:~# hostnamectl set-hostname meet.test.com

root@2e5ee1f22bc9:~# cat /etc/hosts

127.0.0.1localhost meet.test.com

Журнал ошибок внешнего интерфейса:

Logger.js:154 2020-06-05T10:05:38.484Z [conference.js] <ee._onConferenceFailed>:  CONFERENCE FAILED: conference.videobridgeNotAvailable

журнал ошибок jicofo:

Язык кода:javascript
копировать
Jicofo 2020-06-05 07:30:48.710 INFO: [288] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Granted owner to 1234545555@conference.meet.test.com/8eec2e33
Jicofo 2020-06-05 07:30:48.710 INFO: [288] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member 1234545555@conference.meet.test.com/8eec2e33 joined.
Jicofo 2020-06-05 07:31:00.449 INFO: [163] org.jitsi.jicofo.xmpp.FocusComponent.log() Focus request for room: 1234545555@conference.meet.test.com
Jicofo 2020-06-05 07:31:00.645 INFO: [288] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberJoined sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@4e08eda member=ChatMember[1234545555@conference.meet.test.com/3e66d08f, jid: null]@397481160]
Jicofo 2020-06-05 07:31:00.646 INFO: [288] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Member 1234545555@conference.meet.test.com/3e66d08f joined.
Jicofo 2020-06-05 07:31:00.646 WARNING: [288] org.jitsi.jicofo.bridge.BridgeSelectionStrategy.log() Failed to select initial bridge for participantRegion=null
Jicofo 2020-06-05 07:31:00.646 SEVERE: [288] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Can not invite participant -- no bridge available.
Jicofo 2020-06-05 07:31:00.646 WARNING: [288] org.jitsi.jicofo.bridge.BridgeSelectionStrategy.log() Failed to select initial bridge for participantRegion=null
Jicofo 2020-06-05 07:31:00.646 SEVERE: [288] org.jitsi.jicofo.JitsiMeetConferenceImpl.log() Can not invite participant -- no bridge available.
Jicofo 2020-06-05 07:31:01.103 INFO: [288] org.jitsi.jicofo.ChatRoomRoleAndPresence.log() Chat room event ChatRoomMemberPresenceChangeEvent[type=MemberLeft sourceRoom=org.jitsi.impl.protocol.xmpp.ChatRoomImpl@4e08eda member=ChatMember[1234545555@conference.meet.test.com/8eec2e33, jid: 8eec2e33-2efe-4c2b-8166-e1b999a46ddb@meet.test.com/6c310fe2-4beb-43de-a98b-cfae6b887bde]@1154352649]

Последняя версия пакета, установленная в системе:

Язык кода:javascript
копировать
root@2e5ee1f22bc9:/etc/prosody# dpkg -l | grep jitsi
ii  jitsi-meet                     2.0.4627-1                          all          WebRTC JavaScript video conferences
ii  jitsi-meet-prosody             1.0.4127-1                          all          Prosody configuration for Jitsi Meet
rc  jitsi-meet-tokens              1.0.4127-1                          all          Prosody token authentication plugin for Jitsi Meet
ii  jitsi-meet-turnserver          1.0.4127-1                          all          Configures coturn to be used with Jitsi Meet
ii  jitsi-meet-web                 1.0.4127-1                          all          WebRTC JavaScript video conferences
ii  jitsi-meet-web-config          1.0.4127-1                          all          Configuration for web serving of Jitsi Meet
ii  jitsi-videobridge2             2.1-202-g5f9377b9-1                 all          WebRTC compatible Selective Forwarding Unit (SFU)
root@2e5ee1f22bc9:/etc/prosody#

Давайте сначала поговорим об основных службах, которые включает в себя Jitsi. В процессе установки основными службами являются:

1. Веб-сервис, размещенный на nginx;

2. служба xmpp;

3.конференц-сервис jicofo;

4. услуга видеомоста;

Схема архитектуры: источник (https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-manual).

Фактически текущий сервис jitsi-videobridge2 подключен к сервису просодии через 5222!

A Jitsi Meet installation can be broken down into the following components:

·         A web interface(nginx)

·         An XMPP server(prosody)

·         A conference focus component(jicofo)

·         A video router (could be more than one) (videobridge)

·         A SIP gateway for audio calls

·         A Broadcasting Infrastructure for recording or streaming a conference.

Веб работает через прокси-сервер nginx, файл конфигурации:

root@2e5ee1f22bc9:/etc/jitsi# vi /etc/nginx/sites-available/meet.test.com.conf

    location = /config.js {

        alias /etc/jitsi/meet/meet.test.com-config.js;

    }

root@2e5ee1f22bc9:/etc/nginx# tail -f /var/log/jitsi/jicofo.log

root@2e5ee1f22bc9:~# tail -f /var/log/jitsi/jvb.log

Конфигурационный файл

root@2e5ee1f22bc9:/etc/jitsi# ll

total 4

drwxr-xr-x 5 root   root    51 Jun  5 08:58 ./

drwxr-xr-x 1 root   root  4096 Jun  5 08:16 ../

drwx------ 2 jicofo jitsi   81 Jun  5 09:52 jicofo/

drwxr-xr-x 2 root   root    37 Jun  5 08:44 meet/

drwxr-x--- 2 jvb    jitsi  172 Jun  5 09:05 videobridge/

три услуги

root@2e5ee1f22bc9:/etc/jitsi# service jitsi-videobridge2 status

root@2e5ee1f22bc9:/etc/jitsi# service jicofo status 

root@2e5ee1f22bc9:/etc/jitsi# service prosody status

vi /etc/prosody/conf.avail/meet.test.com.cfg.lua

Язык кода:javascript
копировать
root@meet:/etc/jitsi# ps -ef|grep java
 
jvb      19769    java jitsi-videobridge
jicofo    8155     1  0 Jun05 ?        00:01:18 java
 
 
root@meet:/etc/jitsi# netstat -pan|grep java
tcp        0      0 0.0.0.0:8888            0.0.0.0:*               LISTEN      8155/java          
tcp        0      0 127.0.0.1:56306         127.0.0.1:5222          ESTABLISHED 8155/java          
tcp        0      0 127.0.0.1:56316         127.0.0.1:5222          ESTABLISHED 19769/java         
tcp        0      0 127.0.0.1:33060         127.0.0.1:5347          ESTABLISHED 8155/java          
udp        0      0 0.0.0.0:3905            0.0.0.0:*                           8155/java          
udp        0      0 0.0.0.0:5000            0.0.0.0:*                           19769/java         
udp        0      0 0.0.0.0:33854           0.0.0.0:*                           19769/java         
udp        0      0 0.0.0.0:50440           0.0.0.0:*                           19769/java         
udp        0      0 192.168.1.201:10000     0.0.0.0:*                           19769/java         
udp        0      0 11.12.117.210:10000     0.0.0.0:*                           19769/java         
udp6       0      0 :::5000                 :::*                                19769/java         
unix  2      [ ]         STREAM     CONNECTED     7926045  19769/java          
unix  2      [ ]         STREAM     CONNECTED     7784143  8155/java           
unix  2      [ ]         STREAM     CONNECTED     7927656  19769/java   
 
 
root@meet:/etc/jitsi# netstat -pan|grep lua
tcp        0      0 0.0.0.0:5280            0.0.0.0:*               LISTEN      19744/lua5.1       
tcp        0      0 127.0.0.1:5347          0.0.0.0:*               LISTEN      19744/lua5.1       
tcp        0      0 0.0.0.0:5222            0.0.0.0:*               LISTEN      19744/lua5.1       
tcp        0      0 0.0.0.0:5269            0.0.0.0:*               LISTEN      19744/lua5.1       
tcp        0      0 127.0.0.1:5222          127.0.0.1:56316         ESTABLISHED 19744/lua5.1        
tcp        0      0 127.0.0.1:5280          127.0.0.1:53654         ESTABLISHED 19744/lua5.1       
tcp        0      0 127.0.0.1:5347          127.0.0.1:33060         ESTABLISHED 19744/lua5.1       
tcp        0      0 127.0.0.1:5280          127.0.0.1:53656         ESTABLISHED 19744/lua5.1       
tcp        0      0 127.0.0.1:5222          127.0.0.1:56306         ESTABLISHED 19744/lua5.1       
tcp6       0      0 :::5280                 :::*                    LISTEN      19744/lua5.1       
tcp6       0      0 :::5222                 :::*                    LISTEN      19744/lua5.1       
tcp6       0      0 :::5269                 :::*                    LISTEN      19744/lua5.1       
unix  2      [ ]         DGRAM                    7926001  19744/lua5.1

Основная проблема в том, что jicofo не обнаружил видеобридж, а как его обнаружить jicofo, действительно непонятно, если не смотреть на логику кода!

Однако, обратившись к настройке в руководстве по разработке, добавив пользователя jvb в службу просодии и перезапустив службы видеомоста и просодии, я обнаружил, что служба jicobo уже может нормально обнаруживать службу видеомоста!

Create conference focus user:

  720  prosodyctl register focus auth.meet.test.com 7aKQ5Jdi

Create conference jvb user:

  765  prosodyctl register jvb auth.meet.test.com i2AhIKMh

Язык кода:javascript
копировать
root@meet:/etc/jitsi# tail -f /var/log/jitsi/jicofo.log 
         at java.util.TimerThread.mainLoop(Timer.java:555)
         at java.util.TimerThread.run(Timer.java:505)
Jicofo 2020-06-06 07:39:04.716 SEVERE: [427] org.jitsi.xmpp.component.ComponentBase.log() Ping timeout for ID: CqeOq-16955
Jicofo 2020-06-06 07:39:20.639 INFO: [242] org.jitsi.jicofo.xmpp.BaseBrewery.log() Removed brewery instance: jvbbrewery@internal.auth.meet.test.com/0a4788b1-a1e1-4413-a7c2-c3d0cb6cfe91a
Jicofo 2020-06-06 07:39:20.639 INFO: [242] org.jitsi.jicofo.xmpp.BaseBrewery.log() A bridge left the MUC: jvbbrewery@internal.auth.meet.test.com/0a4788b1-a1e1-4413-a7c2-c3d0cb6cfe91a
Jicofo 2020-06-06 07:39:20.639 INFO: [242] org.jitsi.jicofo.bridge.BridgeSelector.log() Removing JVB: jvbbrewery@internal.auth.meet.test.com/0a4788b1-a1e1-4413-a7c2-c3d0cb6cfe91a
Jicofo 2020-06-06 07:39:20.640 INFO: [85] org.jitsi.jicofo.bridge.JvbDoctor.log() Stopping health-check task for: jvbbrewery@internal.auth.meet.test.com/0a4788b1-a1e1-4413-a7c2-c3d0cb6cfe91a
Jicofo 2020-06-06 07:39:26.073 INFO: [242] org.jitsi.jicofo.xmpp.BaseBrewery.log() Added brewery instance: jvbbrewery@internal.auth.meet.test.com/0a4788b1-a1e1-4413-a7c2-c3d0cb6cfe91a
Jicofo 2020-06-06 07:39:26.073 INFO: [242] org.jitsi.jicofo.bridge.BridgeSelector.log() Added new videobridge: Bridge[jid=jvbbrewery@internal.auth.meet.test.com/0a4788b1-a1e1-4413-a7c2-c3d0cb6cfe91a, relayId=null, region=null, stress=0.00]

Затем снова откройте несколько браузеров и войдите в одну и ту же конференц-зал. Все функции вызова работают нормально, и браузер не завершается аварийно после постоянного повторного обновления!

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose