动态连接到socket.io.

Max*_*son 1 node.js socket.io

我正在尝试通过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>
Run Code Online (Sandbox Code Playgroud)

使用这种标准方法一切正常.现在我正在尝试基于服务器的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>
Run Code Online (Sandbox Code Playgroud)

但萤火说的ReferenceError:IO没有定义就行socket = io.connect('http://'+location.host);.

我怎么解决?有一种简单的方法可以做我正在思考的事情吗?谢谢

Joh*_*nck 8

Socket.io与Node.js"神奇"集成,这意味着更简单的东西会自动运行:

<script src="/socket.io/socket.io.js"></script>
var socket = io.connect();
Run Code Online (Sandbox Code Playgroud)

这将找到没有显式主机或路径的库和套接字.它应该"正常工作".