Perbandingan peristiwa Matriks sebelum dan sesudah “Peristiwa yang Dapat Diperluas”

08 Maret 2022 [Matrix, Tech]

[Updated 2022-11-17 based on the new draft of the MSC, notably removing backwards compatibility and the abbreviated forms.]

(Latar Belakang: Matrix adalah standar terbuka yang luar biasa untuk perpesanan yang mulai saya kerjakan sekarang karena saya bekerja di Element.)

Proposal Perubahan Spesifikasi Matriks Peristiwa yang Dapat Diperluas (MSC1767) menjelaskan cara baru menyusun peristiwa dalam matriks yang memudahkan pengiriman peristiwa yang memiliki banyak representasi (misalnya sesuatu yang cerdas seperti peta interaktif, dan sesuatu yang lebih sederhana seperti gambar peta).

Perubahan memiliki 2 tujuan utama:

  1. Untuk memudahkan klien yang tidak mendukung beberapa fitur baru yang menakjubkan untuk menampilkan sesuatu yang masih berguna.
  2. Untuk memungkinkan penggunaan kembali definisi bagian peristiwa dalam peristiwa lain.

Karena ada implementasi perubahan ini di alam liar (di Elemen), kemungkinan besar perubahan ini akan diterima ke dalam spesifikasi Matrix.

Saya sangat menyukai perubahan ini, namun sulit untuk memahaminya, jadi inilah contoh sederhana yang menurut saya berguna untuk dipikirkan secara matang.

Peristiwa lama, dan peristiwa baru

Berikut adalah acara kuno, diikuti oleh versi baru, cemerlang, dan dapat diperluas:

{
    "type": "m.room.message",
    "content": {
        "body": "This is the *old* way",
        "format": "org.matrix.custom.html",
        "formatted_body": "This is the <b>old</b> way",
        "msgtype": "m.text"
    },
    ... other properties not relevant to this, e.g. "sender" ...
}
{
    "type": "m.message",
    "content": {
        "m.markup": [
            {"mimetype": "text/plain", "body": "This the *new* way"},
            {"mimetype": "text/html", "body": "This is the <b>new</b> way"}
        ],
    }
    ... other properties not relevant to this, e.g. "sender" ...
}

Intinya adalah selain isi pesan yang normal (di sini, “blok konten” m.markup), kita dapat memiliki representasi lain dari pesan yang sama, seperti gambar, koordinat lokasi, atau sesuatu yang sama sekali berbeda. Klien akan merender menggunakan blok konten yang diharapkan jika ia mengetahui tentang jenis peristiwa ini (dan mampu menampilkannya), namun jika tidak, klien dapat mencari blok konten lain yang dipahaminya.

Misalnya, dalam Jajak Pendapat saat Anda mengirimkan pertanyaan jajak pendapat baru, tampilannya akan seperti ini:

{
    "type": "m.poll.start",
    "content": {
        "m.poll": {
            ... The actual poll question etc. ...
        },
        "m.markup": [
            ... A text version of the question ...
        ]
    },
    ... other properties not relevant to this, e.g. "sender" ...
}

Jadi klien yang tidak mengetahui m.poll.start masih dapat menampilkan pertanyaan jajak pendapat (jika mereka memahami peristiwa yang dapat diperluas), daripada mengabaikan sepenuhnya jenis peristiwa yang tidak mereka ketahui.

Perhatikan bahwa terkadang blok konten (di dalam konten) dapat memiliki nama yang sama dengan jenis peristiwa, namun tidak harus demikian.

News
Berita
News Flash
Blog
Technology
Sports
Sport
Football
Tips
Finance
Berita Terkini
Berita Terbaru
Berita Kekinian
News
Berita Terkini
Olahraga
Pasang Internet Myrepublic
Jasa Import China
Jasa Import Door to Door

Download Film

Gaming center adalah sebuah tempat atau fasilitas yang menyediakan berbagai perangkat dan layanan untuk bermain video game, baik di PC, konsol, maupun mesin arcade. Gaming center ini bisa dikunjungi oleh siapa saja yang ingin bermain game secara individu atau bersama teman-teman. Beberapa gaming center juga sering digunakan sebagai lokasi turnamen game atau esports.