Estoy tratando de crear una página de redes sociales donde en la página de inicio de cada usuario puedan ver los feeds,
se alimenta de la publicación de un amigo. cada vez que mi amigo crea una publicación, puedo ver lo mismo en mis feeds en tiempo real.
Para eso estoy usando SSE en el matraz de Python. todo funciona, pero después de agregar algunos usuarios más, solo me doy cuenta de que todas las publicaciones llegan al feed de todas las personas que iniciaron sesión. lo cual está mal, quiero ver feeds solo de mis amigos.
Alguien me puede ayudar como lograrlo. Estoy compartiendo el código de nivel base de python y java script.
Lado del cliente:
var source = new EventSource("http://172.19.0.3:8044/events"); source.addEventListener('user_feeds', function(event) { var data = JSON.parse(event.data); console.log("Even from server "); console.log(data); }, false);Lado del servidor
from flask_cors import CORS from flask_sse import sse from factory import create_app app = create_app() CORS(app) app.config["REDIS_URL"] = "redis://redis" input_user_feeds = dict() app.register_blueprint(sse, url_prefix='/events) PROMOTION_BLUEPRINT = Blueprint('my_page', __name__, url_prefix='/api/v1/') @PROMOTION_BLUEPRINT.route('/feeds/<user_id>', methods=["GET"]) def feeds(user_id): push_feeds(user_id) return "SUCCESS" @PROMOTION_BLUEPRINT.route('/user_request/<user_id>', methods=["POST"]) def user_request(user_id): data = request.json add_feeds(user_id, data) return "SUCESS" def push_feeds(user_id): while 1 == 1: if user_id in input_user_feeds: input_request = input_user_feeds[user_id] sse.publish(input_request, type='user_feeds') del input_user_feeds[user_id] def add_feeds(user_id, data): input_user_feeds[user_id] = data if __name__ == '__main__': app.run(host='0.0.0.0', port=Config.PORT, debug=True)Me acerqué a hacer con la identificación de usuario único. pero eso tampoco es una buena idea. Sería útil si alguien con buenos conocimientos en SSE me ayudara a encontrar la solución.
Gracias por adelantado.