Websockets多余的URL信息?

时间:2014-02-27 17:21:57

标签: node.js websocket socket.io

这是一个Web套接字客户端。为什么我需要输入myURL两次?服务器是否总是侦听同一个URL,其中/socket.io/socket.io.js是?

<!doctype html>
<html>
    <head>
        <script src='http://code.jquery.com/jquery-1.7.2.min.js'></script>
        <script src='myURL:8888/socket.io/socket.io.js'></script>
        <script>
            var socket = io.connect('myURL:8888');

            socket.on('welcome', function(data) {
                $('#messages').append('<li>' + data.message + '</li>');

                socket.emit('i am client', {data: 'foo!'});
            });
            socket.on('time', function(data) {
                console.log(data);
                $('#messages').append('<li>' + data.time + '</li>');
            });
            socket.on('error', function() { console.error(arguments) });
            socket.on('message', function() { console.log(arguments) });
        </script>
    </head>
    <body>
        <ul id='messages'></ul>
    </body>
</html>

1 个答案:

答案 0 :(得分:2)

不知道你使用socket.io有多精确:

'myURL'的第一个实例是加载socket.io库的地方。这只是一个JavaScript文件,然后在浏览器中执行。

第二个例子是您建立与套接字端点的连接。在这里,您需要提供服务器侦听的URL +端口组合。

这两个可以连接,例如因为脚本是由您想要连接的服务器托管的(这里似乎就是这种情况),但它们不需要。

脚本可以例如从本地文件系统加载,而服务器在另一台机器上运行。在这种情况下,不会重新发生URL。