express = require('express');
var app = express()
, http = require('http')
, server = http.createServer(app)
, io = require('socket.io').listen(server);
app.configure(function () {
app.use(express.cookieParser());
app.use(express.session({secret: 'secret', key: 'express.sid'}));
app.use(function (req, res) {
res.cookie('Only','isCookie');
res.end('Very good');
});
});
server.listen(8080);
// Отключаем вывод полного лога - пригодится в production'е
io.set('log level', 1);
io.sockets.on('connection', function (socket) {
// Т.к. чат простой - в качестве ников пока используем первые 5 символов от ID сокета
var ID = (socket.id).toString().substr(0, 5);
var time = (new Date).toLocaleTimeString();
// Посылаем клиенту сообщение о том, что он успешно подключился и его имя
socket.json.send({'event': 'connected', 'name': ID, 'time': time});
socket.broadcast.json.send({'event': 'connected', 'name': ID, 'time': time});
// Посылаем всем остальным пользователям, что подключился новый клиент и его имя
// socket.broadcast.json.send({'event': 'messageReceived', 'name': ID, 'time': time});
// Навешиваем обработчик на входящее сообщение
socket.on('message', function (msg) {
// Уведомляем клиента, что его сообщение успешно дошло до сервера
socket.json.send({'event': 'messageSent', 'name': ID, 'text': msg, 'time': time});
// Отсылаем сообщение остальным участникам чата
socket.broadcast.json.send({'event': 'messageReceived', 'name': ID, 'text': msg, 'time': time})
});
// При отключении клиента - уведомляем остальных
socket.on('disconnect', function() {
var time = (new Date).toLocaleTimeString();
io.sockets.json.send({'event': 'userSplit', 'name': ID, 'time': time});
});
});
Вот чат в котором я хочу использовать куки, когда клиентский javascript обращается к чату то установка куков only = isCookie не происходит, но если обратиться из браузера (127.0.0.1:8080) к чату тогда куки ставятся и выдает very good.