1

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 はReferenceError: io is not defined on lineと言いsocket = io.connect('http://'+location.host);ます。

どうすれば解決できますか?私が考えていることを行う簡単な方法はありますか?ありがとう

4

2 に答える 2

8

Socket.io は Node.js と「魔法のように」統合されています。これは、より単純なものが自動的に機能することを意味します。

<script src="/socket.io/socket.io.js"></script>
var socket = io.connect();

これにより、明示的なホストまたはパスのないライブラリとソケットが検出されます。「うまくいく」はずです。

于 2013-04-11T12:16:21.183 に答える