socket.io硬编码与动态连接URL

3

为什么这里的大多数教程、示例和问题都使用本地 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();

这样做有没有任何风险?有没有更好的方式使我的脚本在本地和生产环境都能正常工作,而不必每次都更改此值?

1个回答

3
我认为如果你使用的是动态连接URL而不是硬编码的URL,就不会有任何风险。
在我看来,像你第一个示例中的硬编码URL更容易让初学者理解。第二个示例可能会引起混淆。(实际上,我也不得不检查document.location.host是否包含端口号)。这就是为什么大多数示例和教程使用硬编码变量的原因,我想。
如果第三个示例在开发和生产环境下都能工作,则应使用它。但是,在套接字运行在与应用程序的其他部分不同的端口和/或主机上的情况下,它无法工作,并且有必要在脚本的某个地方进行硬编码。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接