Присоединяйтесь к Matrix от вашего любимого клиента IRC
Matrix2051 (или M51 для короткому) - это IRC -сервер, поддерживаемый Matrix. Вы также можете видеть это как вышибала IRC, который соединяется с домиками Matrix вместо IRC -серверов. Другими словами:
IRC client
(eg. weechat or hexchat)
|
| IRC protocol
v
Matrix2051
|
| Matrix protocol
v
Your Homeserver
(eg. matrix.org)
Цели:
Не предстоящие:
Две заметки на этом скриншоте:
sudo apt install elixir erlang erlang-dev erlang-inets erlang-xmerlmix deps.getmix testmix run matrix2051.exslocalhost:2051 , со следующей конфигурацией:user:homeserver.example.org )Смотрите ниже дополнительные инструкции для работы с веб -клиентами.
Смотрите INSTALL.md для более ориентированного на производство руководства.
matrix2051.exs запускает M51.Application, которая начинается с M51.supervisor, который контролирует:config.ex : global config Agentirc_server.ex : DynamicSupervisor , который получает подключения от клиентов IRC. Каждый раз, когда irc_server.ex получает соединение, он порождает irc_conn/supervisor.ex , который контролирует:
irc_conn/state.ex : хранит состояние соединенияirc_conn/writer.ex : genserver удерживает гнездо и позволяет писать строки (и партии строк в будущем)irc_conn/handler.ex : Задача задачей Занятия в входящих командах от читателя, отвечает на простые и отправляет более сложные командыmatrix_client/state.ex : сохраняет состояние соединения с матрицей HomeServermatrix_client/client.ex : обрабатывает одно подключение к Matrix HomeServer, как один пользовательmatrix_client/sender.ex : отправляет события в Matrix HomeServer и с повторными поисками.matrix_client/poller.ex : неоднократно просит Matrix Homeserver для новых событий (включая начальную синхронизацию)irc_conn/reader.ex : задача занят ожиданием входящих строк и отправляет их в обработчикУтилиты:
matrix/raw_client.ex : клиент матрицы низкого уровня / тонкая обертка вокруг HTTP-запросовirc/command.ex : манипуляции с линией IRC, включая «понижение» их для клиентов, которые не поддерживают некоторые возможности.irc/word_wrap.ex : общая обертка строкиformat/ : преобразовать между форматированием IRC и org.matrix.custom.htmlmatrix_client/chat_history.ex : Извлекать историю сообщений из Matrix, по запросу клиента IRC Есть много замечательных клиентов IRC, но я не могу найти клиента Matrix, который мне нравится. Тем не менее, некоторые сообщества переходят от IRC в Матрицу, поэтому я написал это, чтобы я мог присоединиться к ним с удобным клиентом.
Это также способ легко прототипа последних функций IRCV3 и для меня изучить протокол матрицы.
Теоретически, любой клиент IRC должен работать. В частности, я проверяю это с Gamja, Irccloud, The Lounge и WeeChat.
Пожалуйста, откройте проблему, если у вашего клиента есть какие -либо проблемы.
Теоретически, как я писал это, прочитав матричные характеристики. На практике это тестируется только с синапсом.
Заметным исключением является регистрация, которая использует специфический для синапса API в качестве самой матрицы, не указывает регистрацию.
Пожалуйста, откройте проблему, если у вас есть какие -либо проблемы с вашим HomeServer (фиктивное логин/пароль, который я могу использовать для подключения к нему, будет оценена).
На момент написания, если и матрица, и IRC/IRCV3 поддерживают их, Matrix2051, вероятно, будет. Взгляните на список проблем с открытыми «улучшением».
Примечательным исключением являются прямые сообщения, потому что модель Matrix значительно отличается от IRC.
Чтобы подключить веб -клиентов, вам нужен шлюз WebSocket. Matrix2051 была протестирована с помощью Webircgageway Kiwiirc (попробуйте этот патч, если вам нужно запустить его в старых версиях GO).
Вот как вы можете настроить его для подключения к Matrix2051 с Gamja:
[ fileserving ]
enabled = true
webroot = " /path/to/gamja "
[ upstream . 1 ]
hostname = " localhost "
port = 2051
tls = false
# Connection timeout in seconds
timeout = 20
# Throttle the lines being written by X per second
throttle = 100
webirc = " "
serverpassword = " "Это ссылка на XKCD 1782:
Присоединяйтесь к #matrix2051 на irc.interlinked.me. (Нет, я не ем свой собственный собачий продукт, я все еще предпочитаю «местный» IRC.)