- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Одноклассники пресекли более 9 млн подозрительных входов в учетные записи
И выявили более 7 млн подозрительных пользователей
Оксана Мамчуева
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть чат. Socket Io сервер запускается и работает , если к нему подключился клиент, а потом перешел на другую вкладку,секунд на 25-30, то через некоторое время если перейти обратно на вкладку с чатом, то сообщения не отправляются, если обновить страницу то идет при подключении к скриптам сервера получаем 504 Gateway Time-out. Пофакту сам сервер работает на исходно порту но уже не отображет информацию. В момент такого подключения Apach потребляет до 100% цп.
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
var fs = require('fs');
var https = require('https');
server.listen(5000, function () {
console.log('Server listening at port %d', 5000);
});
const opts = {
key: fs.readFileSync('/var/www/httpd-cert/olever/site.key'),
cert: fs.readFileSync('/var/www/httpd-cert/olever/site.crt')
}
var httpsServer = https.createServer(opts, app);
httpsServer.listen(5001, function(){
console.log("HTTPS on port1 " + 5001);
})
io.attach(httpsServer);
io.attach(server);
io.on('connection', (socket) => {
console.log('a user connected');
socket.on('click', function(data) {
console.log(JSON.stringify(data)+'11');
socket.broadcast.emit('new message', {
username: socket.username,
message: data
});
});
let token = socket.handshake.query.token;
let admin = socket.handshake.query.admin;
console.log(token);
socket.join(token);
socket.on(token+'_write', function(msg) {
console.log( msg['message']);
if (admin == 1) {
socket.broadcast.emit(token + '_write', {
username: token,
message: msg['message']
});
}
});
socket.on('disconnect', function() {
console.log('disconnect');
});
socket.on(token, function(msg){
if(admin==1) {
console.log(msg['mess']);
socket.broadcast.emit(token, {
username: token,
message: msg
});
}
console.log('message: ' + msg);
if(admin==0) {
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var xhr = new XMLHttpRequest();
var body = 'my_data=' + encodeURIComponent(JSON.stringify(msg));
xhr.open("POST", '/send_chat', true);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.send(body);
}
});
});