为什么大多数教程,示例和问题都使用本地IP或localhost
(或任何其他硬编码路径),如下所示:
var socket = io.connect('http://127.0.0.1:3700');
而不仅仅是:
var socket = io.connect(document.location.protocol+'//'+document.location.host);
甚至:
var socket = io.connect();
是否有任何风险让它像这样动态?有没有更好的方法让我的脚本在本地和生产中工作,而不必每次都更改此值?
答案 0 :(得分:3)
如果您有动态连接网址而不是硬编码网址,我认为没有任何风险。
在我看来,像第一个例子中的硬编码网址更容易让初学者理解。第二个例子可能令人困惑。 (实际上,如果document.location.host包含端口号,我还必须检查)。这就是为什么大多数示例和教程都使用硬编码变体,我猜。
如果第三个示例在开发和生产环境中都有效,那么您应该使用它。但是,如果套接字在与应用程序的其余部分不同的端口和/或主机上运行,则它不起作用,并且必须在脚本中的某处对其进行硬编码。