انضم إلى Matrix من عميل IRC المفضل لديك
Matrix2051 (أو M51 للاختصار) هو خادم IRC مدعوم بالمصفوفة. يمكنك أيضًا رؤيته باعتباره حارس IRC يتصل بـ Matrix Homeservers بدلاً من خوادم 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 : وكيل التكوين العالميirc_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 : معالجة اتصال واحد بمصفوفة homeServer ، كمستخدم واحدmatrix_client/sender.ex : يرسل الأحداث إلى matrix homeServer ومع إعادة المحاكمة على الفشلmatrix_client/poller.ex : يسأل مرارًا وتكرارًا من Matrix HomeServer للأحداث الجديدة (بما في ذلك المزامنة الأولية)irc_conn/reader.ex : المهمة المشغولة على الخطوط الواردة ، وترسلها إلى المعالجالمرافق:
matrix/raw_client.ex : عميل مصفوفة منخفضة المستوى / غلاف رفيع حول طلبات HTTPirc/command.ex : معالجة خط IRC ، بما في ذلك "خفض" للعملاء الذين لا يدعمون بعض القدرات.irc/word_wrap.ex : ملف خط عامformat/ : تحويل بين تنسيق IRC و org.matrix.custom.htmlmatrix_client/chat_history.ex : يجلب سجل الرسائل من Matrix ، عند طلبه من قبل عميل IRC هناك العديد من عملاء IRC الرائعين ، لكن لا يمكنني العثور على عميل Matrix الذي يعجبني. ومع ذلك ، تنتقل بعض المجتمعات من IRC إلى Matrix ، لذلك كتبت هذا حتى أتمكن من الانضمام إليهم مع عميل مريح.
هذه أيضًا طريقة لتنسيق أحدث ميزات IRCV3 بسهولة ، ولكي أتعلم بروتوكول المصفوفة.
من الناحية النظرية ، يجب على أي عميل IRC العمل. على وجه الخصوص ، أختبره مع Gamja و IrcCloud و The Lounge و Weechat.
يرجى فتح مشكلة إذا كان لدى عميلك أي مشكلة.
من الناحية النظرية ، أي ، كما كتبت هذا من خلال قراءة مواصفات المصفوفة. في الممارسة العملية ، يتم اختبار هذا فقط مع المشبك.
الاستثناء الملحوظ هو التسجيل ، والذي يستخدم واجهة برمجة تطبيقات خاصة بالمشبك لأن المصفوفة نفسها لا تحدد التسجيل.
يرجى فتح مشكلة إذا كان لديك أي مشكلة مع HomeServer الخاص بك (تسجيل الدخول/كلمة المرور الوهمية التي يمكنني استخدامها للاتصال بها سيكون موضع تقدير).
في وقت كتابة هذا التقرير ، إذا كان كل من المصفوفة و IRC/IRCV3 يدعمانهم ، فمن المحتمل أن يكون Matrix2051. ألقِ نظرة على قائمة قضايا "التحسين" المفتوحة.
الاستثناء الملحوظ هو الرسائل المباشرة ، لأن نموذج Matrix يختلف اختلافًا كبيرًا عن IRC.
لتوصيل عملاء الويب ، تحتاج إلى بوابة WebSocket. تم اختبار Matrix2051 باستخدام Webircgateway من 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 "الأصلي".)