Как я могу отправить (отправить) данные только одному клиенту (который не оплачивается в моем mysql db) и прослушивать на стороне клиента, используя socket.io, redis, node? - PullRequest
0 голосов
/ 11 марта 2020

Я использую laravel конечную точку API (на данный момент), которая публикует мой канал как

     Redis::publish('new_message_sent',json_encode($request->all()));

И использую узел как

    var app = require("express")();   
    var server = require("http").Server(app);
    var io = require("socket.io")(server);
    var redis = require("redis");
     require("dotenv").config();

     const APP_PORT = 6999;
     server.listen(APP_PORT, () => {
     console.log("App is running at:", APP_PORT);
      });

     io.on("connection", function(socket) {
     console.log("Client Connected With Socket ID:", socket.id);
     var redisClient = redis.createClient();

      redisClient.subscribe("new_message_sent", function(channel, message) {
      console.log("Subscribed", channel, message);
      });

      redisClient.on("message", function(channel, message) {
      message = JSON.parse(message);
      console.log("New Message Data", message);

      socket.emit(channel, message);
      });

       redisClient.on("disconnect", function() {
       redisClient.quit();
       });
        });

Теперь я хочу как-то publi sh канал, на который подписаны только те пользователи, чьи статусы не оплачиваются в моем mysql db, так что сообщение может быть отправлено только тем, а не остальным? Или даже если все подписаны, как я могу отправлять сообщения только тем, кто не оплачивается (опять же, я не знаю, как получить всех неоплачиваемых пользователей по коду на этой стороне узла. Можно ли как-нибудь отправить всех этих неоплачиваемых пользователей при публикации канала? на стороне laravel И что мне нужно делать с этими пользователями, когда они находятся в моем коде стороны узла?)? Пожалуйста, помогите мне, я застрял в этом в течение долгого времени, и это первый раз, когда я использую socket.io и node.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...