I am an IoT developer & working on a commercial project.
I am using a Nodemcu board, I am willing to use a SIM modem (module) instead of a wifi router.
Here I want to send some sensor data to a mobile app over the internet.
My problem is that I want a communication protocol that works without any third server as I can in TCP/IP protocol. But In TCP the IP address is used for communication but the IP address is Dynamic and it changes & using a STATIC IP is a little expensive and complicated.
So I want a protocol in can work without any third server as I can do which my board (whdemcu) can directly communicate with the Mobile app or wiy other NODE. But without using an IP address. It will be good if that protocol supports any other unique identifier.
I know that there are many protocols and services (like MQTT, Blynk, ARDUINO CLOUD, RAINMAKER, etc.) but unfortunately, they are paid and not affordable.
In short, I want a communication protocol that can communicate without any external server.
Kindly answer my question and help me with my issue.
Sir but running my own server is a complicated task.
and as I mentioned in my question I am developing a commercial product so in the future my server will have a huge load of communication so, using a Raspberry is not an option. And giving a stable internet connection to the server is very hard.
I suppose that you could look at this: https://ifttt.com/ . There is a free plan. I've never used it and have only seen it mentioned on this site in the context of a problem. However, it may suit you.
If the communication is only initiated from your SIM modem to the external message service, then the dynamic IP addresses should not be a problem.
From my first reading, the issue is not whether your activities are commercial or not, simply whether you can accept the limitations of the free plan. Free commercial services will be difficult to find.
Are you going to be selling this "commercial project"? Can you past the cost of connectivity on to your customer?
You can use a free DynmicDNS service to map a domain name to your server IP even as the server IP changes. The mobile app would connect to your server using the domain name.
You should get professional help. Semiconductor companies and their distributors employ lots of professionals who would be more than happy to help you. Just call one of their sales people and tell them about your project (requirements, SOP, volume over live time) and they will send you some friendly engineer to point you in the right direction and help you finish on time.
Please make sure that the decive meets all regulations required (e.g. EU RED, EMI, ...).
Also when considering free services:
They have servers they have to pay for. Please don't abuse them.
And now for the problem:
When using WIFI or a modem please don't expect these devices to get a public IP. The same goes for smart phones. Also you cannot expect your users to know what port forwarding is and how to configure it for your device.
As a result you need a server as an public anchor point where all the devices connect to. There they can negotiate how to directly communicate with each other.
When the devices are on the same network they can use a direct connection.
When one has an public IP also use a direct connection.
With no public IPs try UDP hole punching for direct connection.
When everything above fails, use a server to forward the data.
You can probably start with a small VPS and when the number of paying customers grow you can upgrade your servers.