We are using Azure IoT Hub for device to device and device to cloud (and vice versa) communication:
https://learn.microsoft.com/en-us/azure/iot-hub/iot-hub-devguide
In the following pages we describe the protocol that your device needs to implement: