The problem
I'm developing an IOT device that will connect to a common Wifi router. As you know in order to make this device publicly accessible from WAN you'll have to do some ports forwarding or DMZ in the router. But in this scenario I don't want to touch the router. So I have to figure out a way to keep this device accessible from WAN.
My solution
On boot I make the device to call an http server running node.js + socket.io, I can keep a TCP connection alive and have my server as a gateway from WAN to the device:
Could be this the only solution? Can achieve this is a smartest/easiest way without having to touch the router?