Ini adalah penulisan ke-14 saya di tapak dev.to. Siaran ini menunjukkan cara ingin tahu untuk menggunakan keupayaan pemesejan masa nyata.
Nota: ini BUKAN penyelesaian biasa pemesejan masa nyata.
Ably menawarkan pelbagai penyelesaian untuk pembangun, dengan yang paling popular ialah pemesejan masa nyata berdasarkan model pub/sub. Apabila anda menerbitkan mesej ke saluran, semua peranti yang disambungkan ke saluran itu menerimanya serta-merta.
Mampu memberikan ketekalan mesej untuk mesej saluran anda (24 jam untuk akaun percuma). Apa yang menarik terutamanya ialah ciri mereka yang membolehkan mesej terakhir berterusan selama 365 hari. Saya akan memanfaatkan keupayaan ini dalam contoh ini.
Konsepnya mudah: bayangkan web atau apl mudah alih dengan borang dan senarai rekod (seperti senarai tugasan, senarai beli-belah atau senarai kenalan) yang disimpan sebagai satu mesej berterusan. Apabila anda melancarkan apl pada mana-mana peranti (PC, tablet atau telefon), ia menyegerakkan data daripada Ably. Sebarang perubahan yang anda buat pada data anda disimpan sebagai mesej berterusan baharu, dengan berkesan mewujudkan "pangkalan data masa nyata" yang boleh diakses merentas semua peranti anda.
Terdapat beberapa had untuk dipertimbangkan. Panjang mesej maksimum ialah 64 KB (termasuk metadata, ID, cap waktu dll.). Memandangkan mesej yang melebihi 2 KB dibahagikan kepada beberapa bahagian untuk penghantaran, Ably mengesyorkan agar saiz data kekal di bawah had ini. Oleh itu, penyelesaian ini paling sesuai untuk jumlah data yang kecil.
Saya telah menguji konsep ini, dan ia berfungsi dengan sempurna. Menambah dan memadamkan rekod mencetuskan kemas kini mesej yang memastikan semua aplikasi pelanggan (web/mudah alih) segerak.
Saya telah mencipta bukti-konsep ringkas sebagai satu halaman (HTML CSS JS) di flems.io. Untuk mencuba sendiri, anda perlu:
Terdapat bahagian penting dalam apl, kod JS:
const ably = new Ably.Realtime("put your API KEY here"); const channel = ably.channels.get('[?rewind=1]Realtime'); var persons = []; channel.subscribe("db", (message) => { persons = message.data; renderTable(); }); function addPerson() { const name = document.getElementById('name').value; const age = document.getElementById('age').value; const role = document.getElementById('role').value; if (name && age && role) { const newPerson = { name: name, age: age, role: role }; persons.push(newPerson); updatePersons(); document.getElementById('name').value = ''; document.getElementById('age').value = ''; document.getElementById('role').value = ''; } } function deletePerson(index) { persons.splice(index, 1); updatePersons(); } function updatePersons() { channel.publish("db", persons); } function renderTable() { const personTable = document.getElementById('personTable'); personTable.innerHTML = ''; persons.forEach((person, index) => { const row = `<tr> <td>${person.name}</td> <td>${person.age}</td> <td>${person.role}</td> <td><button onclick="deletePerson(${index})">( X )</button></td> </tr>`; personTable.innerHTML += row; }); }
Apl saya di flems.io
Semoga ini memberi inspirasi kepada anda! :-)
Atas ialah kandungan terperinci Rasa ingin tahu: Menggunakan Pemesejan Masa Nyata Ably.io sebagai Pangkalan Data Ringan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!