Написал чат, вроде всё должно работать, ну и работает, только не могу понять, почему сообщения просто не приходят. Т.е. данные из инпута не отображаются, точнее не передаются, так как их просто нет...
Код клиента:
var nickname = prompt('What\s your name ?'),
socket = io(),
messages = $('#messages');
socket.emit('join', nickname);
var newMessage = function(data) {
var who = $('<span class="who">').text(data.nickname + ': '),
message = $('<span class="msg">').text(data.msg),
final = $('<li>').append(who).append(message);
messages.append(final);
};
$('form').submit(function() {
var input = $('message'),
data = { msg: input.val(), nickname: nickname };
socket.emit('msg', data);
newMessage(data);
input.val('');
return false;
});
socket.on('msg', function(data) { newMessage(data); });
socket.on('notice', function(msg) {
// messages.prepend($('<li>').text('notice: ' + msg));
messages.append($('<li>').text('notice: ' + msg));
});
Код сервера:
var express = require('express'),
app = express(),
http = require('http').Server(app),
io = require('socket.io')(http);
app.use(express.static(__dirname));
app.get('/', function(req, res) {
res.sendFile('index.html');
// res.render('index.html');
});
io.on('connection', function(socket) {
socket.on('join', function(nickname) {
socket.nickname = nickname;
console.log(nickname + ' was connected');
socket.broadcast.emit('notice', nickname + ' has joined to the chat.');
// socket.emit('notice', nickname + ' has joined to the chat.');
});
socket.on('disconnect', function() {
console.log(socket.nickname + ' was disconnected');
socket.broadcast.emit('notice', socket.nickname + ' has left from the chat.');
// socket.emit('notice', socket.nickname + ' has left from the chat.');
});
socket.on('msg', function(data) {
socket.broadcast.emit('msg', data);
// console.log('Message: ' + data.msg);
// socket.emit('msg', data);
});
});
http.listen(3000, function() {
console.log('listen on *:3000');
});