2012-06-01 4 views
2

Это, безусловно, очень наивный вопрос, так как я новичок в node.js.Путаница при запуске очень простого примера socket.io?

Я просто работает очень простой первый Socket.io пример с сайта: http://socket.io/#how-to-use

клиент: index.html:

<script src="/socket.io/socket.io.js"></script> 
<script> 
    var socket = io.connect('http://localhost'); 
    socket.on('news', function (data) { 
    console.log(data); 
    socket.emit('my other event', { my: 'data' }); 
    }); 
</script> 

сервера: app.js:

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

app.listen(8080); 

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

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

io.sockets.on('connection', function (socket) { 
    socket.emit('news', { hello: 'world' }); 
    socket.on('my other event', function (data) { 
    console.log(data); 
    }); 
}); 

С моей точки зрения я предполагаю, что произойдет, когда сервер получит запрос от клиента, он выведет данные, испускаемые клиентом {my: 'data'} на консоль, который он делает, но затем он должен также отправить клиенту данные {hello: 'world'} и когда клиент получит, он также должен регистрировать данные на консоли? На консоли терминала я вижу только {my: 'data'} для каждого запроса. Является ли сервер неправильным отправкой данных клиенту или я не вижу места?

Видимо, я думаю, что я запутался в некоторых элементарных вещах, но когда вы говорите клиенту, чтобы сделать console.log на javascript на стороне клиента, должен ли отображаться вывод на терминале, который выполняет серверную программу или что-то еще? Если мне нужно проверить вывод на клиентской консоли, куда я должен искать, в браузере?

Надеюсь, кто-нибудь может рассказать мне об этой базовой концепции, я много гугл, но я считаю, что это слишком просто, что большинство просто думают, что люди знают об этом, поэтому я не получил много.

+1

Он будет в браузере. Если вы используете Chrome, вы можете использовать сочетание клавиш opt + cmd + j (я не могу вспомнить ярлык Windows ...), в Firefox вы можете использовать Firebug. – subhaze

+0

Спасибо! Я вижу, так что мне все еще нужно выяснить, как установить Firebug на Ubuntu, что сделает его медленнее на моем компьютере с черепахой, я, скорее всего, воспользуюсь предупреждением вместо этого, чтобы распечатать сообщение. Еще раз спасибо за разъяснение! – Superziyi

+0

Нет проблем. Если вы собираетесь делать много записей, вы можете настроить div, установленный в нижней части страницы, и добавить вывод к его внутреннемуHTML. Не удержался бы от мучительно ударить «ОК» каждый раз :) – subhaze

ответ

4

В Chrome в любом месте окна браузера -> rightclick для меню -> элемент проверки. Появится окно в нижней части главного окна. Из списка вкладок «Элементы», «Ресурсы», «Сеть» ... перейдите к «Консоль». Здесь отображаются все журналы консоли.

+1

или использовать ctrl + shift + j – Shekhar

Смежные вопросы