Реализация уведомлений через сокеты и Nginx с использованием бесплатного SSL / TLS-сертификата Let's Encrypt и его использование в приложении React
Несколько дней назад мой главный операционный директор сказал мне: «Привет, Рафа, пора держать пользователей в курсе событий в нашем SaaS, когда завершится процесс сканирования».
Отсюда, вы знаете, как технический директор я предложил своей команде перенести красивую карточку отставания на следующую весну.
const http = require('http').createServer();
const io = require('socket.io')(http, {
cors: {
origin: ["http://localhost:3000", /\.aymconsultores\.es$/],
methods: ["GET", "POST"]
}
});
io.on('connection', (socket) => {
console.log('User connected');
socket.on('message', (message, source) => {
io.emit('eBill', `${message} ${source}` );
});
});
http.listen(7985, () => console.log('listening on http://localhost:7985') );
Кроме того, интересно отметить предыдущий процесс прослушивания на localhost, порт 7985 (поэтому не забудьте открыть этот порт или тот, который вы используете).
Мы используем Pupeteer и Cheerio для очистки разных источников. Эти процессы также выполняются на том же сервере, что и предыдущий.
Вы можете потребовать библиотеку socket.io-client в верхней части приложения узла (в нашем случае очистить) и определить сервер, на котором сокет прослушивает:
const io = require("socket.io-client");
const socket = io('http://localhost:7985');
const query = pgp.helpers.insert(myNewArr, cs);
const queryRowCount = await db.result(query, a => a.rowCount);
// email here
smtpTransport.sendMail({
from: process.env.EMAIL_USER,
to: "[email protected]",
subject: "Indra was succesfully scraped at " + moment().tz('Europe/Madrid').format(),
text: rowsAffected.length + ' new rows were updated \n' + JSON.stringify(rowsAffected)
}, (error, info) => {
if (error) {
console.error("error sending email. " + error);
} else {
console.log('email sent');
socket.emit('message', 'There was a new update coming from ', 'INDRA');
process.exit(0);
}
💃🏻💃🏻 Самое интересное вот-вот наступит! 💃🏻💃🏻
Обнаружены проблемы:
const socket = io(‘https://notifications.aymconsultores.es:9443');
location ~* \.io {
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
proxy_pass http://localhost:7985;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
Итак, это уведомление, которое пользователи будут смотреть на eBill, когда процесс парсинга на сервере завершится:
Кстати, я использую библиотеку notistack в проекте React.
Введение Инсульт — это неотложная медицинская помощь, которая может случиться с кем угодно в любое время. Это происходит, когда приток крови к части мозга нарушается, что приводит к внезапной потере функции мозга.
Проблема кибербезопасности является глобальной проблемой, и различные организации, правительства и неправительственные организации в настоящее время проводят бесплатное обучение и программы, чтобы побудить больше людей делать карьеру в области кибербезопасности. Как человек, получивший пользу от бесплатного технического обучения и программ, я составил список бесплатных курсов, тренингов, учебных лагерей и стажировок, которые могут заинтересовать других.
Привет, киберлюбители! Добро пожаловать обратно в серию OSINT по поиску угроз. В первой статье я рассказал вам об OSINT и его важности для поиска угроз.
Мы часто обнаруживаем, что изо всех сил пытаемся реализовать то, что, как мы знаем, полезно для нас. От того, чтобы сказать значимому другому, что мы любим его, до того, чтобы помнить, что нужно говорить как пират, всегда будут те, кто утверждает, что день, неделя или месяц событий не нужны, потому что они уже делают эти вещи.
В современном гиперсвязанном мире системы СМИ играют ключевую роль в формировании общественного мнения и, следовательно, в демократическом принятии решений. В своем глубоком анализе политической экономии коммуникации ученый Роберт МакЧесни бросает вызов общепринятому мнению и представляет то, что он называет «пятью истинами» о СМИ.
Недавно я был в Linkedin, крупнейшей в мире профессиональной социальной сети, и нашел посты дизайнеров-фрилансеров, за которыми я следил и которые привлекли мое внимание. Все они публиковали фотографии из самолетов, на пляже со своими ноутбуками, из бассейнов и офисов с потрясающими видами.