socket.io硬编码vsdynamic连接url
为什么大多数教程,示例和问题都使用本地IP或localhost
(或任何其他硬编码path):
var socket = io.connect('http://127.0.0.1:3700');
而不是简单地:
var socket = io.connect(document.location.protocol+'//'+document.location.host);
甚至:
var socket = io.connect();
是否有任何风险使它像这样dynamic? 有没有更好的方法使我的脚本在本地和在生产中工作,而不必每次都改变这个值?
我没有看到任何风险,如果你有一个dynamic连接的url,而不是一个硬编码的。
在我看来,像第一个例子中的硬编码的URL更容易让初学者理解。 第二个例子可能会令人困惑。 (其实我也必须检查,如果document.location.host包含端口号或不)。 这就是为什么大多数示例和教程都使用硬编码变体,我猜。
如果第三个示例在您的开发和生产环境中都可以使用,则应该使用它。 但是,如果套接字运行在与应用程序其他部分不同的端口和/或主机上,则不起作用,因此需要在脚本的某个位置对其进行硬编码。