プロトコルサポート
- mqtt:
mqtt
ライブラリは、MQTT 3.1.1およびMQTT 5.0の両方をサポートしており、最新のプロトコル機能を利用できます。これにより、より柔軟で効率的なメッセージングが可能です。 - paho-mqtt:
paho-mqtt
は、MQTT 3.1.1およびMQTT 5.0をサポートしており、特にWebアプリケーション向けに最適化されています。Eclipse Pahoプロジェクトの一部として、信頼性の高いメッセージングを提供します。
セキュリティ機能
- mqtt:
mqtt
ライブラリは、TLS/SSLを使用したセキュアな接続をサポートしていますが、認証やアクセス制御はアプリケーション側で実装する必要があります。 - paho-mqtt:
paho-mqtt
は、TLS/SSLによるセキュアな通信をサポートしており、ユーザー名とパスワードによる認証も可能です。特にWeb環境でのセキュリティに配慮されています。
カスタマイズ性
- mqtt:
mqtt
ライブラリは、クライアントの設定やコールバックをカスタマイズすることができますが、プロトコル自体のカスタマイズはできません。 - paho-mqtt:
paho-mqtt
は、クライアントの動作をカスタマイズするためのAPIを提供していますが、プロトコルやライブラリの内部動作を変更することはできません。
コード例
- mqtt:
mqtt
を使用したMQTTクライアントの簡単な例const mqtt = require('mqtt'); const client = mqtt.connect('mqtt://broker.hivemq.com'); client.on('connect', () => { console.log('Connected to MQTT broker'); client.publish('test/topic', 'Hello MQTT!'); client.subscribe('test/topic'); }); client.on('message', (topic, message) => { console.log(`Received message: ${message} on topic: ${topic}`); });
- paho-mqtt:
paho-mqtt
を使用したWebブラウザからのMQTTクライアントの例<!DOCTYPE html> <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.1.0/paho-mqtt-min.js"></script> </head> <body> <script> const client = new Paho.MQTT.Client('broker.hivemq.com', 8000, 'clientId'); client.onConnect = () => { console.log('Connected to MQTT broker'); client.subscribe('test/topic'); client.publish('test/topic', 'Hello from Paho MQTT!'); }; client.onMessageArrived = (message) => { console.log(`Received message: ${message.payloadString}`); }; client.connect(); </script> </body> </html>