2015-06-16 23 views
1

我對一些項目使用netty-socketio。我設置了像這樣的服務器:爲什麼我需要在netty socketio中提供主機名以及如何處理docker中的socketio?

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

SocketIOServer server = new SocketIOServer(config); 
server.start(); 

我只有在這一切幾個知識,我想知道爲什麼我需要在這裏設置的主機名?僅僅給港口聽就不夠?

另外,如何在Docker中處理這個問題:我有我的服務器的IP地址,以及容器的虛擬IP地址,我應該給哪一個IP地址?

如果我有另一臺運行在不同容器(但在同一臺計算機上)的服務器,並且我希望這兩臺服務器進行通信,如何處理所有這些IP以實現此目的?這種溝通會如同全部在本地主機一樣高效嗎?

回答

1

正如你所看到的here設置主機名可以很容易省略。基本上這只是一個將socketio綁定到的接口。所以是的,你可以只指定要監聽的端口 - 在這種情況下,它將監聽0.0.0.0。

說到docker,您可能不會指定主機名,但可以配置端口公開。例如。容器將聽取0.0.0.0:8888,其將暴露於:8889 - 見port exposing

所有的容器都將在運行時分配其唯一的IP。如果您希望他們進行通信,只需設置不同的端口即可綁定。