我正在尝试通过socket.io将浏览器连接到我的应用程序。
<script type="text/javascript" src="http://localhost:4000/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('http://localhost:4000');
</script>
使用这种标准方法一切正常。 现在,我正在尝试基于服务器的IP在“动态”中转换此连接,如下所示:
<html>
<head>
var socket;
function loadFile(filename){
var ip_server = location.host;
var body = document.getElementsByTagName( 'body' )[0],
fileref = document.createElement('script');
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", "http://"+ip_server+"/"+filename);
body.appendChild( fileref );
}
</head>
<body>
<script type="text/javascript">
loadFile("socket.io/socket.io.js");
socket = io.connect('http://'+location.host);
</script>
</body>
</html>
但是firebug在socket = io.connect('http://'+location.host);
行上说 ReferenceError:io未定义 。
我该如何解决?有一种简单的方法可以做我正在思考的事情吗? 感谢
答案 0 :(得分:8)
Socket.io与Node.js“神奇”集成,这意味着更简单的东西会自动运行:
<script src="/socket.io/socket.io.js"></script>
var socket = io.connect();
这将找到没有显式主机或路径的库和套接字。它应该“正常工作。”
答案 1 :(得分:-1)
const socket = io.connect(location.href);