2014-02-19 34 views
1

爲什麼大多數的教程,範例和問題在這裏使用這樣的本地IP或localhost(或任何其他硬編碼路徑):socket.io硬編碼VS動態連接網址

var socket = io.connect('http://127.0.0.1:3700'); 

而不是簡單地:

var socket = io.connect(document.location.protocol+'//'+document.location.host); 

甚至:

var socket = io.connect(); 

是否有任何風險,使其動態這樣嗎?有沒有更好的方法可以使我的腳本在本地和生產環境中工作,而無需每次都更改此值?

回答

2

如果您擁有動態連接網址而不是硬編碼連接網址,我不會看到任何風險。

在我看來,像第一個例子中的硬編碼網址更容易讓初學者理解。第二個例子可能會讓人困惑。 (其實我也必須檢查,如果document.location.host包含端口號或不)。這就是爲什麼大多數示例和教程都使用硬編碼變體,我猜。

如果第三個示例在您的開發和生產環境中均可用,則應該使用它。但是,如果套接字運行在與應用程序其他部分不同的端口和/或主機上,則它不起作用,因此有必要在腳本的某個位置對其進行硬編碼。