为什么我需要在netty socketio中给出主机名以及如何处理docker中的socketio?
Why do I need to give the hostname in netty socketio and how to handle socketio in docker?
我正在为某个项目使用 netty-socketio。我这样设置服务器:
Configuration config = new Configuration();
config.setHostname("localhost");
config.setPort(8080);
SocketIOServer server = new SocketIOServer(config);
server.start();
我对这一切知之甚少,我想知道为什么我需要在这里设置主机名?只给端口监听不就行了吗?
另外,Docker我该如何处理:我有我的服务器IP,和容器的虚拟IP,我应该给哪个?
如果我有另一个服务器 运行 在不同的容器中(但在同一台机器上)并且我希望两者进行通信,我该如何处理所有这些 IP 来实现这一点?通信是否会像在本地主机上一样高效?
如您所见,here 设置主机名可以轻松省略。基本上这只是一个将 socketio 绑定到的接口。所以是的,您可以仅指定要侦听的端口 - 在这种情况下它将侦听 0.0.0.0.
当涉及到docker时,您可以不指定主机名,而是配置端口公开。例如。容器将侦听 0.0.0.0:8888,它将暴露给 :8889 - 参见 port exposing.
所有容器都将运行分配给它们唯一的 IP。如果你想让他们通信只需要设置不同的端口绑定。
我正在为某个项目使用 netty-socketio。我这样设置服务器:
Configuration config = new Configuration();
config.setHostname("localhost");
config.setPort(8080);
SocketIOServer server = new SocketIOServer(config);
server.start();
我对这一切知之甚少,我想知道为什么我需要在这里设置主机名?只给端口监听不就行了吗?
另外,Docker我该如何处理:我有我的服务器IP,和容器的虚拟IP,我应该给哪个?
如果我有另一个服务器 运行 在不同的容器中(但在同一台机器上)并且我希望两者进行通信,我该如何处理所有这些 IP 来实现这一点?通信是否会像在本地主机上一样高效?
如您所见,here 设置主机名可以轻松省略。基本上这只是一个将 socketio 绑定到的接口。所以是的,您可以仅指定要侦听的端口 - 在这种情况下它将侦听 0.0.0.0.
当涉及到docker时,您可以不指定主机名,而是配置端口公开。例如。容器将侦听 0.0.0.0:8888,它将暴露给 :8889 - 参见 port exposing.
所有容器都将运行分配给它们唯一的 IP。如果你想让他们通信只需要设置不同的端口绑定。