Почему мое приложение node.js / socket.io не работает на iOS6?

Я думал, что весь смысл socket.io в том, чтобы не беспокоиться о современных браузерах? лол

Во всяком случае, я новичок в программировании сокетов. У меня есть небольшое приложение, которое просто имитирует движения мыши.

Вы открываете несколько браузеров, и когда вы перемещаете мышь, ваши действия записываются в других браузерах. Он перемещается на небольшой квадрат. Вроде круто. Однако, когда я открываю его на своем iPad (iOS6), ничего не происходит! Разъемы нетт соединения. Я даже положил предупреждающее сообщение вconnect событие и ничего.

Работает в IE, FF и Chrome на моем ноутбуке. Единственная разница в том, что моя машина использует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);
        });

    });

Вот мой клиент:



    
        
            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;
            }
        
    
    

        <br>
        
        

        
        
            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});
            }


        

    

Ответы на вопрос(1)

Ваш ответ на вопрос