Socket.io
- 2 ответа
- 0 вопросов
1
Вклад в тег
location / {
rewrite ^([^.\?]*[^/])$ $1/ permanent;
try_files $uri @clean_url;
}
rewrite ^([^.\?]*[^/])$ $1/ permanent;
userlist = {}; // Массив юзеров
io.sockets.on('connection', function(socket) {
socket.on('connect', function(data, callback) {
socket.user_id = data.user_id; // в user_id передаём идентификатор пользователя
if(socket.user_id in userlist) {
callback(false); // Ага, этот юзер уже открыл вкладку, значит ничего не делаем
} else {
callback(true); // А вот тут он новенький
userlist[socket.user_id] = data; // Фигачим его в массив
UpdateUserList(); // Обновляем список онлайн юзеров
}
});
// При дисконнекте
socket.on('disconnect', function() {
delete userlist[socket.user_id];
// Тут немного магии, чтобы юзеры в списке онлайн на клиенте не моргали, когда например они ходят по ссылкам сайта
setTimeout(function () {
UpdateUserList();
}, 1000);
});
function UpdateUserList() {
io.sockets.emit('updateusers', userlist);
}
});
Carbon::parse('2019-07-14')->isWeekend(); // true
// ИЛИ
$ru = CarbonImmutable::now()->locale('ru_RU');
var_dump($ru->firstWeekDay);
var_dump($ru->lastWeekDay);
var_dump($ru->startOfWeek()->format('Y-m-d H:i'));
var_dump($en->endOfWeek()->format('Y-m-d H:i'));