为什么我的node.js/socket.io应用程序不能在iOS6上运行?

为什么我的node.js/socket.io应用程序不能在iOS6上运行?,node.js,ios6,mobile-safari,socket.io,Node.js,Ios6,Mobile Safari,Socket.io,我认为socket.io的全部意义在于不必担心现代浏览器?哈哈 不管怎样,我对套接字编程还是新手。我有一个小应用程序,只是模仿鼠标移动 打开多个浏览器,移动鼠标时,您的操作将记录在其他浏览器中。它移动一个小正方形。有点酷。然而,当我在我的iPad(iOS6)上打开它时,什么都没有!插座没有连接。我甚至在connect事件中添加了一条警告消息,什么也没有 在IE、FF和Chrome中都能正常工作,在我的笔记本电脑上也能正常工作。唯一的区别是,我的dev机器使用localhost,而iPad使用我机

我认为socket.io的全部意义在于不必担心现代浏览器?哈哈

不管怎样,我对套接字编程还是新手。我有一个小应用程序,只是模仿鼠标移动

打开多个浏览器,移动鼠标时,您的操作将记录在其他浏览器中。它移动一个小正方形。有点酷。然而,当我在我的iPad(iOS6)上打开它时,什么都没有!插座没有连接。我甚至在
connect
事件中添加了一条警告消息,什么也没有

在IE、FF和Chrome中都能正常工作,在我的笔记本电脑上也能正常工作。唯一的区别是,我的dev机器使用
localhost
,而iPad使用我机器的IP。然而,当我连接到笔记本电脑上的本地IP时,它仍然可以工作。只是不在Safari/iPad中

这是我的服务器

    var app = require('http').createServer(handler),
        io = require('socket.io').listen(app),
        fs = require('fs');


    app.listen(80);

    function handler(req, res) {
        var file = __dirname + '/public/index.html';
        fs.readFile(file, 
            function(err, data) {
                if(err) {
                    res.writeHead(500);
                    return res.end('Error loading index.html');
                }

                res.writeHead(200);
                res.end(data);
            }
        );
    }


    var rooms = ['abc', 'test1'];

    var sockets = [];
    io.sockets.on('connection', function(socket) {
        sockets.push(socket);

        socket.on('m', function(data) {
            socket.broadcast.to(socket.room).emit('relay', {msg: 'MouseX: ' + data.x + ' MouseY: ' + data.y, x: data.x, y: data.y});
        });

        socket.on('join', function(room) {
            socket.join(room);
            socket.emit('updateStatus', {msg: 'Joined room ' + room});
            console.log('Joined room ' + room);
        });

    });
这是我的客户:

<!doctype html>
<html>
    <head>
        <style>
            body {
                padding: 40px;
            }
            #cursor {
                background:white;
                border:1px solid black;
                color: white;
                display: block;
                height:24px;
                padding:6px;
                position:absolute;
                width:24px;
                z-index:20;
            }
        </style>
    </head>
    <body>

        <input id='msg' type='text' size='100' /><br />
        <input id='box' type='text' size='100' />
        <div id='cursor'></div>

        <script src='/socket.io/lib/socket.io.js'></script>
        <script>
            var socket = io.connect('http://localhost');
            var b = document.getElementById('box');
            var m = document.getElementById('msg');
            var c = document.getElementById('cursor');

            // join custom room
            socket.on('connect', function() {
                socket.emit('join', 'abc');
            });

            // update status messages from server
            socket.on('updateStatus', function(data) {
                m.setAttribute('value', data.msg);
            });

            socket.on('relay', function(data) {
                b.setAttribute('value', data.msg);
                c.style.left = parseInt(data.x) + 'px';
                c.style.top = parseInt(data.y) + 'px';
            });

            document.onmousemove = function(event) {
                event = event || window.event;
                socket.emit('m', {x: event.clientX, y: event.clientY});
            }


        </script>

    </body>
</html>

身体{
填充:40px;
}
#光标{
背景:白色;
边框:1px纯黑;
颜色:白色;
显示:块;
高度:24px;
填充:6px;
位置:绝对位置;
宽度:24px;
z指数:20;
}

var socket=io.connect('http://localhost'); var b=document.getElementById('box'); var m=document.getElementById('msg'); var c=document.getElementById('cursor'); //加入海关 socket.on('connect',function(){ emit('join','abc'); }); //从服务器更新状态消息 socket.on('updateStatus',函数(数据){ m、 setAttribute('value',data.msg); }); 插座打开(“继电器”,功能(数据){ b、 setAttribute('value',data.msg); c、 style.left=parseInt(data.x)+“px”; c、 style.top=parseInt(data.y)+“px”; }); document.onmousemove=函数(事件){ event=event | | window.event; emit('m',{x:event.clientX,y:event.clientY}); }
本地主机是计算机的本地主机。您的IP应使用IP地址或域名:

比如: io.connect('192.168.1.110');
或io.connect('test.myapp.com')

完全正确的问题——这个问题也把我绊倒了!