Warum funktioniert meine node.js / - Buchse.io-app nicht auf iOS6?

Ich dachte, der ganze Punkt an der Buchse.io war keine sorgen machen über den modernen Browsern? lol

Sowieso, ich bin neu auf socket-Programmierung. Ich habe eine kleine app, die einfach imitiert Bewegungen der Maus.

Öffnen Sie mehrere Browser und, wenn Sie die Maus bewegen, Ihre Aktionen werden aufgezeichnet, in den anderen Browsern. Es bewegt sich ein kleines Quadrat. Ein bisschen kühl. Jedoch wenn ich es öffnen auf meinem iPad (iOS6) nichts! Buchsen nicht anschließen. Lege ich noch eine Warnmeldung in der connect Ereignis und nichts.

Funktioniert im IE, FF und Chrome Prima auf meinem laptop. Der einzige Unterschied ist, dass meine dev-Maschine verwendet localhost während das iPad nutzt mein Rechner die IP-Adresse. Allerdings, wenn ich eine Verbindung zu meiner lokalen IP auf meinem laptop, es funktioniert immer noch. Nur nicht in Safari/iPad.

Hier ist meine server.

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

    });

Hier ist mein client:

<!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>
  • Ähm, warum der down-vote?
  • vollkommen berechtigte Frage - diese ausgelöst mich zu!
InformationsquelleAutor cbmeeks | 2012-10-17
Schreibe einen Kommentar