


Komunikasi data masa nyata menggunakan PHP dan SignalR
Dengan perkembangan pesat Internet mudah alih, komunikasi masa nyata secara beransur-ansur menjadi keperluan yang sangat penting. Dalam komunikasi masa nyata, keperluan paling asas ialah komunikasi data masa nyata, yang memerlukan pelayan dapat menghantar data kepada pelanggan dalam masa nyata dan berinteraksi dalam masa nyata.
PHP dan SignalR ialah dua alat yang sangat berkuasa apabila ia datang untuk merealisasikan komunikasi data masa nyata. PHP ialah bahasa pembangunan yang sangat popular yang boleh digunakan untuk menulis kod sisi pelayan, manakala SignalR ialah rangka kerja komunikasi masa nyata yang boleh digunakan untuk melaksanakan komunikasi data masa nyata.
Dalam artikel ini, kami akan memperkenalkan secara terperinci cara menggunakan PHP dan SignalR untuk mencapai komunikasi data masa nyata. Mula-mula kami akan memperkenalkan konsep asas dan prinsip kerja SignalR, dan kemudian memperkenalkan cara menggunakan PHP dan SignalR untuk membina pelayan dan klien untuk komunikasi data masa nyata. Akhir sekali, kami akan menggunakan contoh untuk menunjukkan cara menggunakan PHP dan SignalR untuk mencapai komunikasi data masa nyata.
1. Konsep asas dan prinsip kerja SignalR
SignalR ialah rangka kerja komunikasi masa nyata yang boleh digunakan untuk mencapai komunikasi data masa nyata. Ia berdasarkan WebSockets, tinjauan panjang, Acara Dihantar Pelayan (SSE) dan teknologi lain, dan boleh melakukan komunikasi data masa nyata pada penyemak imbas dan sistem pengendalian yang berbeza.
SignalR berfungsi dengan sangat mudah. Apabila pelanggan mewujudkan sambungan dengan pelayan, SignalR secara automatik akan memilih kaedah komunikasi yang paling sesuai (WebSockets, tinjauan panjang, SSE, dll.) dan mewujudkan sambungan berterusan antara pelayan dan klien. Apabila pelayan mempunyai data baharu yang perlu ditolak kepada klien, SignalR akan menghantar data secara automatik kepada klien dan mencetuskan peristiwa yang sepadan pada klien supaya klien boleh memproses data.
2. Gunakan PHP dan SignalR untuk membina pelayan dan klien untuk komunikasi data masa nyata
Untuk menggunakan PHP dan SignalR untuk membina pelayan dan klien untuk komunikasi data masa nyata, kami perlu memasang perpustakaan PHP SignalR terlebih dahulu. Anda boleh memasang pustaka PHP SignalR dengan menggunakan Komposer. Komposer boleh dipasang dalam baris arahan dengan arahan berikut:
- curl -sS https://getcomposer.org/installer | php
Gunakan arahan berikut untuk memasang pustaka PHP SignalR dalam baris arahan :
- komposer memerlukan signalwire/signalwire
- Selepas memasang pustaka PHP SignalR, kami boleh mula menulis kod pelayan dan klien.
Kod bahagian pelayan adalah seperti berikut:
<?php require __DIR__ . '/vendor/autoload.php'; use SignalWireRestClient; use SignalWireRelayStreamRoom; $client = new Client('YOUR_PROJECT_ID', 'YOUR_AUTH_TOKEN'); $room = new Room($client, 'YOUR_ROOM_ID'); $room->on('data', function ($data) use ($room) { // 处理接收到的数据 }); $room->join();
Dalam kod di atas, kami mula-mula mencipta contoh klien di bahagian pelayan menggunakan perpustakaan PHP SignalR. Kemudian, kami mendaftarkan fungsi panggil balik dalam contoh klien yang mengendalikan acara "data" Apabila pelanggan menerima data yang dihantar oleh pelayan, fungsi panggil balik akan dipanggil secara automatik. Akhir sekali, kami menyertai klien ke bilik SignalR dengan memanggil kaedah join().
Kod pada bahagian pelanggan kelihatan seperti ini:
<!doctype html> <html> <head> <title>SignalR Example</title> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@signalwire/js@0.14.2/dist/signalwire.min.js"></script> </head> <body> <script> const signalwire = new window.SignalWire.WebSocketEngine({ host: 'relay.signalwire.com', project: 'YOUR_PROJECT_ID', token: 'YOUR_AUTH_TOKEN', room: 'YOUR_ROOM_ID', }); signalwire.on('ready', () => { // 客户端连接成功后的处理 }); signalwire.on('open', () => { // 客户端打开连接后的处理 }); signalwire.on('data', (data) => { // 处理接收到的数据 }); </script> </body> </html>
Dalam kod di atas, kami mula-mula mencipta contoh WebSocketEngine pada bahagian pelanggan melalui perpustakaan JavaScript SignalR. Kami kemudiannya mendaftarkan beberapa fungsi panggil balik acara pada contoh WebSocketEngine untuk mengendalikan pelbagai acara. Akhir sekali, kami boleh menghantar data ke pelayan melalui contoh WebSocketEngine.
3. Contoh Demonstrasi
Untuk menunjukkan cara menggunakan PHP dan SignalR untuk mencapai komunikasi data masa nyata, kami boleh mengambil ruang sembang sebagai contoh. Dalam bilik sembang ini, pengguna boleh memasukkan beberapa mesej teks pada klien, dan kemudian pelayan akan menolak mesej ini kepada pelanggan lain dalam masa nyata untuk interaksi masa nyata.
Untuk pelaksanaan kod khusus, sila rujuk contoh berikut:
// server.php <?php require __DIR__ . '/vendor/autoload.php'; use SignalWireRestClient; use SignalWireRelayStreamRoom; $client = new Client('YOUR_PROJECT_ID', 'YOUR_AUTH_TOKEN'); $room = new Room($client, 'YOUR_ROOM_ID'); $room->on('data', function ($data) use ($room) { foreach ($room->clients as $client) { $client->send($data); } }); $room->join();
<!-- index.html --> <!doctype html> <html> <head> <title>SignalR Example</title> <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@signalwire/js@0.14.2/dist/signalwire.min.js"></script> </head> <body> <div> <input type="text" id="input" /> <button id="send">Send</button> </div> <div id="messages"></div> <script> const signalwire = new window.SignalWire.WebSocketEngine({ host: 'relay.signalwire.com', project: 'YOUR_PROJECT_ID', token: 'YOUR_AUTH_TOKEN', room: 'YOUR_ROOM_ID', }); signalwire.on('ready', () => { console.log('Connected to the server.'); }); signalwire.on('open', () => { console.log('Connection opened.'); }); signalwire.on('data', (data) => { $('#messages').append('<p>' + data + '</p>'); }); $('#send').on('click', () => { const message = $('#input').val(); signalwire.send(message); $('#input').val(''); }); </script> </body> </html>
Dalam kod di atas, kami mula-mula mencipta bilik SignalR pada pelayan Apabila pelanggan menyambung ke pelayan, ia akan menyertai bilik ini. Apabila salah satu pelanggan menghantar mesej, pelayan menghantar mesej ini kepada pelanggan lain untuk mencapai komunikasi masa nyata.
Dalam klien, kami mencipta kotak input teks dan butang "Hantar" Apabila pengguna memasukkan teks dalam kotak input teks dan mengklik butang "Hantar", teks akan dihantar ke pelayan, dan kemudian pelayan. akan Menghantar teks ini kepada pelanggan lain untuk komunikasi masa nyata.
Ringkasan
Sangat mudah untuk melaksanakan komunikasi data masa nyata menggunakan PHP dan SignalR Anda hanya perlu menggunakan perpustakaan PHP SignalR dan perpustakaan JavaScript. Apabila melaksanakan komunikasi data masa nyata, kami boleh merealisasikan hubungan antara pelanggan melalui bilik SignalR, dan menggunakan acara dan fungsi panggil balik SignalR untuk mengendalikan interaksi antara pelayan dan klien.
Atas ialah kandungan terperinci Komunikasi data masa nyata menggunakan PHP dan SignalR. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.

Apakah kaedah sihir PHP? Kaedah sihir PHP termasuk: 1. \ _ \ _ Membina, digunakan untuk memulakan objek; 2. \ _ \ _ Destruct, digunakan untuk membersihkan sumber; 3. \ _ \ _ Call, mengendalikan panggilan kaedah yang tidak wujud; 4. \ _ \ _ Mendapatkan, melaksanakan akses atribut dinamik; 5. \ _ \ _ Set, melaksanakan tetapan atribut dinamik. Kaedah ini secara automatik dipanggil dalam situasi tertentu, meningkatkan fleksibiliti dan kecekapan kod.
