Socket.io нужна помощь в получении данных из php и отправка их в websocket

96
17 августа 2018, 11:30

Задача такая:

Нужно уведомлять пользователя о событиях на сервере например при формировании события в php скрипте, который отправляет данные по POST запросу на https://site.ru/notifi, там стоит вебсокет к которому подключены пользователи. При совпадении ID подключенного посетителя и ID в пришедшем запросе отправлять данные этому подключенному посетителю.

Как это сделать в настройках сервера Socket.ioи nodejs?

Как-то начал, но запутался, вот код:

var express = require('express');
var app = express();
var logger = require('log4js').getLogger();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var port = 4444;
server.listen(port, '92.315.139.149', function(){
    var addr = server.address();
    logger.debug('listening on '+addr.address+':' + addr.port);
});
app.get('/websocket', function(req,res){
    res.send('Hello world! I\'m your first server!');
    logger.debug('listening on');
});
// тесты
app.get('/websocket/:username', function(req,res){
    res.send('Hello '+req.params.username+'!'); 
});
// Пишем прием пост запроса
app.post('/notify',  function (req, res) {
  const userIds = req.body.user_ids; // берем из body список пользователей, которым нужно отправить уведомление
  const data = req.body.data; // уведомление
  userIds.forEach(userId => {
     // проверяем что пользователь онлайн
     if (io.sockets.connected[userId] !== undefined) {
      // отправляем ему уведомление
      io.sockets.connected[userId].emit('event',  data);
    }
  });
  res.json({ status: 'OK' });
}); 
READ ALSO
PHP и Smarty защита с stripslashes

PHP и Smarty защита с stripslashes

Есть MySQL код:

110
PHP POST 404 NOT FOUND mail.php

PHP POST 404 NOT FOUND mail.php

У меня в корне проекта лежитphp файл для формы

183
PHP: как сгруппировать массив по ключу?

PHP: как сгруппировать массив по ключу?

Подскажите, как можно сгруппировать массив в PHP:

149
Почему не работает цикл PHP?

Почему не работает цикл PHP?

Имеется следующий PHP код, цикл не хочет запускаться по какой-то причине, описанной в ошибкеPHP говорит, что нужно поставить запятую или точку...

130