เข้าร่วมเมทริกซ์จากไคลเอนต์ IRC ที่คุณชื่นชอบ
Matrix2051 (หรือ M51 สั้น ๆ ) เป็นเซิร์ฟเวอร์ IRC ที่ได้รับการสนับสนุนโดยเมทริกซ์ นอกจากนี้คุณยังสามารถเห็นว่ามันเป็น IRC bouncer ที่เชื่อมต่อกับ 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 : 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 : รักษาสถานะของการเชื่อมต่อกับ matrix homeservermatrix_client/client.ex : จัดการการเชื่อมต่อหนึ่งครั้งกับ Matrix Homeserver ในฐานะผู้ใช้รายเดียวmatrix_client/sender.ex : ส่งเหตุการณ์ไปยัง Matrix Homeserver และ retries on on Failurematrix_client/poller.ex : ถาม Matrix Homeserver ซ้ำ ๆ ซ้ำ ๆ สำหรับเหตุการณ์ใหม่ (รวมถึงการซิงค์เริ่มต้น)irc_conn/reader.ex : งานยุ่งอยู่กับสายที่เข้ามาและส่งไปยังตัวจัดการสาธารณูปโภค:
matrix/raw_client.ex : ไคลเอ็นต์เมทริกซ์ระดับต่ำ / wrapper บางรอบคำขอ httpirc/command.ex : การจัดการสาย IRC รวมถึง "ลดระดับ" สำหรับลูกค้าที่ไม่รองรับความสามารถบางอย่างirc/word_wrap.ex : การห่อเส้นทั่วไปformat/ : แปลงระหว่างการจัดรูปแบบของ IRC และ org.matrix.custom.htmlmatrix_client/chat_history.ex : ดึงประวัติข้อความจากเมทริกซ์เมื่อไคลเอนต์ IRC ร้องขอ มีลูกค้า IRC ที่ยอดเยี่ยมมากมาย แต่ฉันไม่พบไคลเอนต์เมทริกซ์ที่ฉันชอบ ถึงกระนั้นชุมชนบางแห่งกำลังย้ายจาก IRC ไปเป็นเมทริกซ์ดังนั้นฉันจึงเขียนสิ่งนี้เพื่อที่ฉันจะได้เข้าร่วมกับลูกค้าที่สะดวกสบาย
นี่เป็นวิธีการสร้างต้นแบบคุณสมบัติ IRCV3 ล่าสุดได้อย่างง่ายดายและสำหรับฉันที่จะเรียนรู้โปรโตคอลเมทริกซ์
ในทางทฤษฎีลูกค้า IRC ควรทำงาน โดยเฉพาะอย่างยิ่งฉันทดสอบด้วย Gamja, Irccloud, The Lounge และ Weechat
โปรดเปิดปัญหาหากลูกค้าของคุณมีปัญหาใด ๆ
ในทางทฤษฎีใด ๆ ที่ฉันเขียนสิ่งนี้โดยการอ่านข้อมูลจำเพาะของเมทริกซ์ ในทางปฏิบัติสิ่งนี้ถูกทดสอบด้วย synapse เท่านั้น
ข้อยกเว้นที่น่าสังเกตคือการลงทะเบียนซึ่งใช้ API เฉพาะ synapse เนื่องจากเมทริกซ์ไม่ได้ระบุการลงทะเบียน
โปรดเปิดปัญหาหากคุณมีปัญหาใด ๆ กับ Homeserver ของคุณ (การเข้าสู่ระบบหุ่นจำลอง/รหัสผ่านที่ฉันสามารถใช้เพื่อเชื่อมต่อกับมันจะได้รับการชื่นชม)
ในช่วงเวลาของการเขียนหากทั้งเมทริกซ์และ IRC/IRCV3 สนับสนุนพวกเขา Matrix2051 น่าจะเป็น ดูรายการปัญหา 'การเพิ่มประสิทธิภาพ' แบบเปิด
ข้อยกเว้นที่น่าสังเกตคือข้อความโดยตรงเนื่องจากโมเดลของเมทริกซ์แตกต่างจาก 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)