为什么这里的大多数教程、示例和问题都使用本地 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();
是否有任何风险让它像这样动态?有没有更好的方法可以让我的脚本在本地和生产中工作,而不必每次都更改此值?
最佳答案
如果您有一个动态连接 url 而不是硬编码的,我看不到任何风险。
在我看来,像第一个示例中的硬编码 url 更容易让初学者理解。第二个例子可能会令人困惑。 (实际上我还必须检查 document.location.host 是否包含端口号)。这就是为什么大多数示例和教程使用硬编码变体的原因,我猜。
如果第三个示例在您的开发和生产环境中都适用,您应该使用它。但是,如果套接字在与应用程序其余部分不同的端口和/或主机上运行,则它不起作用,并且有必要在脚本中的某处对其进行硬编码。
关于javascript - socket.io 硬编码 vs 动态连接 url,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21886773/