Rumah >pembangunan bahagian belakang >tutorial php >Penjejakan lokasi masa nyata menggunakan PHP dan MQTT
Gunakan PHP dan MQTT untuk melaksanakan fungsi penjejakan lokasi masa nyata
Dengan perkembangan pesat Internet of Things, fungsi penjejakan lokasi masa nyata telah menjadi aplikasi yang semakin popular. Dengan menggunakan protokol PHP dan MQTT, kami boleh melaksanakan fungsi penjejakan lokasi masa nyata dengan mudah. Artikel ini akan memperkenalkan anda kepada cara menggunakan kedua-dua alatan ini untuk mencapai fungsi ini dan memberikan contoh kod yang sepadan.
Pertama sekali, kita perlu memahami konsep asas PHP dan MQTT.
PHP ialah bahasa skrip sebelah pelayan yang popular digunakan secara meluas untuk pembangunan web. Ia mudah dipelajari, berkuasa dan digunakan secara meluas. Dalam artikel ini, kami akan menggunakan PHP untuk memproses dan membalas data lokasi.
MQTT ialah protokol pemesejan terbitan/langganan ringan yang asalnya direka untuk aplikasi IoT dalam persekitaran rangkaian jalur lebar rendah dan tidak boleh dipercayai. Ia menggunakan topik antara penerbit dan pelanggan untuk melaksanakan penghantaran mesej. Dalam artikel ini, kami akan menggunakan MQTT untuk melaksanakan penghantaran masa nyata data lokasi.
Seterusnya, mari kita lihat cara menggunakan PHP dan MQTT untuk melaksanakan penjejakan lokasi masa nyata.
Pertama, kita perlu memasang dan mengkonfigurasi pelayan proksi MQTT. Kita boleh menggunakan sumber terbuka Mosquitto atau HiveMQ untuk membina pelayan proksi MQTT. Di sini, kami mengambil Mosquitto sebagai contoh untuk menggambarkan.
Mengkonfigurasi Nyamuk
Selepas pemasangan selesai, kita perlu mengedit fail konfigurasi Mosquitto. Buka fail mosquitto.conf, cari kandungan berikut dan konfigurasikannya.
pendengar 1883
allow_anonymous true
Di sini, kami menggunakan port MQTT lalai 1883 dan membenarkan akses tanpa nama.
Mulakan Nyamuk
Selepas konfigurasi selesai, kita boleh mulakan perkhidmatan Nyamuk. Jalankan arahan berikut dalam terminal:
mosquitto
Pelayan Mosquitto akan berjalan di latar belakang dan mendengar sambungan daripada pelanggan.
Seterusnya, mari kita lihat cara menggunakan PHP untuk memproses dan membalas data lokasi.
Pasang sambungan PHP MQTT
Mula-mula, kita perlu memasang sambungan PHP MQTT. Buka terminal dan jalankan arahan berikut:
pecl install Mosquitto-alpha
Selepas pemasangan selesai, tambah baris berikut dalam fail php.ini:
extension=mosquitto.so
Kemas kini konfigurasi PHP dan mulakan semula pelayan web.
Sambung ke pelayan proksi MQTT
Dalam kod PHP, kita boleh menggunakan kelas Mosquitto untuk menyambung ke pelayan proksi MQTT. Berikut ialah contoh kod:
<?php $mqtt = new MosquittoClient(); // 连接到MQTT代理服务器 $mqtt->connect('localhost', 1883); // 设置订阅主题和消息回调函数 $mqtt->subscribe('/location', 0); $mqtt->onMessage(function($message) { // 处理位置数据 $location = json_decode($message->payload, true); // 执行相应操作,如保存位置数据到数据库 }); // 持续监听MQTT消息 while(true) { $mqtt->loop(); } $mqtt->disconnect(); ?>
Dalam kod sampel ini, kami mula-mula mencipta contoh klien Mosquitto dan kemudian menggunakan kaedah connect
untuk menyambung ke pelayan proksi Mosquitto. Seterusnya, kami menggunakan kaedah langgan
untuk melanggan topik dan menggunakan kaedah onMessage
untuk menetapkan fungsi panggil balik mesej. Dalam fungsi panggil balik kita boleh memproses dan bertindak balas kepada data lokasi. Akhir sekali, kami menggunakan kaedah gelung
untuk mendengar mesej MQTT secara berterusan. connect
方法连接到Mosquitto代理服务器。接下来,我们使用subscribe
方法来订阅一个主题,并使用onMessage
方法设置消息的回调函数。在回调函数中,我们可以处理和响应位置数据。最后,我们使用loop
方法来持续监听MQTT消息。
发布位置数据
在生产环境中,我们通常通过传感器或其他设备来获取位置数据,并通过MQTT协议将位置数据发布到指定的主题上。以下是一个示例代码:
<?php $mqtt = new MosquittoClient(); // 连接到MQTT代理服务器 $mqtt->connect('localhost', 1883); // 发布位置数据到指定主题 $location = array('latitude' => 28.7041, 'longitude' => 77.1025); $mqtt->publish('/location', json_encode($location), 0); $mqtt->disconnect(); ?>
在这个示例代码中,我们首先创建了一个Mosquitto客户端的实例,并使用connect
方法连接到Mosquitto代理服务器。然后,我们使用publish
Dalam persekitaran pengeluaran, kami biasanya mendapatkan data lokasi melalui penderia atau peranti lain dan menerbitkan data lokasi ke topik yang ditetapkan melalui protokol MQTT. Berikut ialah contoh kod:
rrreee Dalam kod sampel ini, kami mula-mula mencipta instance klien Mosquitto dan menyambung ke pelayan proksi Mosquitto menggunakan kaedah connect
. Kami kemudian menggunakan kaedah publish
untuk menerbitkan data lokasi ke topik yang ditentukan.
Atas ialah kandungan terperinci Penjejakan lokasi masa nyata menggunakan PHP dan MQTT. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!