我正在为Android制作IM应用程序。 该应用程序由服务器和客户端组成,两者都驻留在android上。 在启动时,应用程序向Web服务器注册。 如果客户端想要将IM发送到NAT路由器后面的服务器,该怎么做? 我听说过stun4j和jstun,但在android中找不到它们的用法示例。 谢谢!
答案 0 :(得分:1)
为什么服务器必须在设备上?
这似乎无效,android最适合作为典型的客户端设备。
制作即时消息应用非常简单。
只需让客户端向网络服务器发送消息,然后存储它们即可 让其他客户端等待或轮询来自Web服务器的消息。
无论互联网连接类型如何,这都可以。
如果您坚持要在设备上安装服务器,我认为您将获得的最接近的解决方案是使用某种upnp库。
使用upnp,您可以告诉路由器自动为您的服务器端口设置NAT。
这对于已在其路由器中禁用upnp的用户不起作用。
答案 1 :(得分:0)
stun4j不是适用于所有NAT的通用解决方案。
最简单&最可靠的解决方案是通过具有已知地址的外部网络服务器发送消息。