So...I've figured out and fixed your problem. The solution came to me in
Anyway, What I did was change the listen port to 443 and opened port 443.
You could have stopped reading after this, but I'll explain anyway.
Port 443 is the port for SSL and thus traffic is apparently more secure, which is why the firewall allows it.
The reason why this works is because some firewalls block the web socket port but will allow it if it is on port 443. Thus, changing your server port will allow your server to be seen on the web.
I have tested this with both internal and external clients, and they could all join.
Anyway, hope this helps