为什么我需要在netty socketio中提供主机名以及如何在docker中处理socketio?

我正在为一些项目使用netty-socketio。 我build立了一个像这样的服务器:

Configuration config = new Configuration(); config.setHostname("localhost"); config.setPort(8080); SocketIOServer server = new SocketIOServer(config); server.start(); 

关于这一切,我只有很less的知识,我想知道为什么我需要在这里设置主机名? 只是给港口听是不够的?

另外,如何在Docker中处理这个问题:我有我的服务器的IP地址,以及容器的虚拟IP地址,我应该给哪一个IP?

如果我有另一个服务器运行在不同的容器(但在同一台机器上),我希望这两个进行通信,如何处理所有这些IP来实现这一目标呢? 这样的沟通会如同全部在本地主机一样高效吗?

正如你在这里看到的,设置主机名可以很容易省略。 基本上这只是一个界面,将socketio绑定到。 所以是的,你可以只指定要监听的端口 – 在这种情况下,它将监听0.0.0.0。

当涉及到docker工人,你可能不指定主机名,但configuration端口公开。 例如,容器将听取0.0.0.0:8888将暴露于:8889 – 见端口暴露 。

所有的容器将运行与他们唯一的IP分配。 如果你想让他们沟通,只需要设置不同的端口绑定。