MQTT communication packages: Difference between revisions

From OPC Labs Knowledge Base
No edit summary
No edit summary
Line 1: Line 1:
[[Category:Communication packages]] [[Category:MQTT]] [[Category:OPC UA PubSub]]  
[[Category:Communication packages]] [[Category:MQTT]] [[Category:OPC UA PubSub]]  
There are various software libraries that provide MQTT communication capability, and they differ in many aspects such as the protocol versions and features supported, target platforms, licensing etc. OPC Labs software has uses pluggable MQTT communication packages, and therefore you can decide which of these libraries to use. Each MQTT library is wrapped in a communication package, which provides interface to the rest of OPC Labs software.
The available MQTT communication packages are described in the table below, together with the underlying software (library) they use. The table also contain columns for MQTT libraries for which no communication package is available yet, but is in consideration or development.


{| class="wikitable"
{| class="wikitable"
Line 84: Line 87:
|}
|}


Currently, we recommend the OpcLabs.MqttNet communication package, and it is set as default. The underlying library has most features. You can switch to a different communication package if you like (see [[Using communication packages]]). You can even develop your own communication package if needed (contact us for information to that).
Currently, we recommend to use the '''OpcLabs.MqttNet''' communication package, and it is set as default. The underlying library has most features. You can switch to a different communication package if you like (see [[Using communication packages]]). You can even develop your own communication package if needed (contact us for information to that).
 
For details on how to work with a particular communication package (such as what is the format of the URL strings used, or how to configure it), see the links in the Documentation row under Communication package in the table above.

Revision as of 09:29, 13 December 2019

There are various software libraries that provide MQTT communication capability, and they differ in many aspects such as the protocol versions and features supported, target platforms, licensing etc. OPC Labs software has uses pluggable MQTT communication packages, and therefore you can decide which of these libraries to use. Each MQTT library is wrapped in a communication package, which provides interface to the rest of OPC Labs software.

The available MQTT communication packages are described in the table below, together with the underlying software (library) they use. The table also contain columns for MQTT libraries for which no communication package is available yet, but is in consideration or development.

Communication package OpcLabs.Mqtt OpcLabs.MqttNet
Documentation OpcLabs.Mqtt communication package OpcLabs.MqttNet communication package
Target platforms .NETFramework 4.7, .NETStandard2.0 .NETFramework 4.7, .NETStandard2.0
NuGet package
ZIP package (.NET Framework)
Underlying software System.Net.Mqtt (Hermes) MQTTnet,
MQTTnet.Extensions.ManagedClient
M2MqttDotnetCore
Author Xamarin (Microsoft) Christian Kratky
Version 0.6.0-beta 3.0.8 1.0.8
License MIT License MIT License Eclipse Public License 1.0
Project site/documentation https://github.com/xamarin/mqtt https://github.com/chkr1011/MQTTnet/wiki https://m2mqtt.wordpress.com/
Code repository https://github.com/xamarin/mqtt https://github.com/chkr1011/MQTTnet https://github.com/mohaqeq/paho.mqtt.m2mqtt
MQTT versions 3.1.1 3.1.0, 3.1.1, 5.0.0
Roles Client, Server Client, Server Client
Transport protocols TCP TCP, TCP+TLS, WS, WSS TCP, TCP+TLS
Target platform .NETFramework 4.6, .NETStandard2.0 .NETStandard 1.3, .NETStandard 2.0, UAP 10.0 .NETStandard 2.0
NuGet packages https://www.nuget.org/packages/System.Net.Mqtt https://www.nuget.org/packages/MQTTnet,
https://www.nuget.org/packages/MQTTnet.Extensions.ManagedClient
https://www.nuget.org/packages/M2MqttDotnetCore/

Currently, we recommend to use the OpcLabs.MqttNet communication package, and it is set as default. The underlying library has most features. You can switch to a different communication package if you like (see Using communication packages). You can even develop your own communication package if needed (contact us for information to that).

For details on how to work with a particular communication package (such as what is the format of the URL strings used, or how to configure it), see the links in the Documentation row under Communication package in the table above.