Я не очень знаком с Express, но инстинкт подсказывает мне, что get () будет ссылаться на GET HTTP-запрос и, следовательно, не на веб-сокет.Я думаю, что вы должны использовать Express для возврата HTML для запросов страниц, но передача данных в режиме реального времени будет обрабатываться Socket.io.
Таким образом, вы получите возврат Express для реальных запросов страниц:
app.get('/myApp/client1.html', function(blah){});
app.get('/myApp/client2.html', function(blah){});
Тогда socket.io будет обрабатывать разговор:
var io = require('socket.io').listen(app);
io.sockets.on('connection', function (socket) {
socket.on('msg', function (data) {
io.sockets.emit('msg', {msg: data.msg});
});
});
Клиент:
var socket = io.connect('http://localhost:8080');
socket.on('msg', function (data) {
//code to add data.msg somewhere on page
});
somebutton.on('click', function(e){
socket.emit('msg', {msg:$(e.targetElement).value()});
});
Опять же, я не знаю, Expressпоэтому у меня может быть неправильный синтаксис, но моя суть в том, что у вас есть две вещи, которые вам нужно обрабатывать отдельно.Один - это возврат реальных HTML-страниц, другой - обмен данными между загруженными страницами в режиме реального времени.Мои примеры грубые, проверьте Socket.io Readme для некоторых лучших примеров.