Estoy luchando con un problema, mi función emit () no envía nada a la interfaz, a pesar de que está recibiendo datos. Aquí está mi código:
Fondo de matraz:
def ack(): print("message was received!") @socketio.on("add_to_chat_event") def handle_event(data): print(data) emit("my response", data, callback=ack, broadcast=True)Y aquí está mi interfaz:
function appendToChat(room, username) { socket.emit("add_to_chat_event", { room: room, username: username }); } $(".room").click(function () { choiced_room = this.getAttribute("value"); socket = io(); socket.on("connect", function () { joinRoom(choiced_room, username); appendToChat(choiced_room, username); }); socket.on("message", function (data) { $("#messages").append(`<li class ='list-group'>${data}</li>`); $("#Messages").value = ""; }); socket.on("add_to_chat_event", function (data) { console.log(data, "tutaj"); if (!data) { $(".users").append(`<li>Anonymous</li>`); } else { $(".users").append(`<li>${data}</li>`); } }); });El problema está en la función de emisión porque cuando imprimo los datos recibidos todo está bien. Me estoy perdiendo de algo ? Gracias por la respuesta.
El problema ya está resuelto, esto no se menciona en la documentación. El primer parámetro del método emit() es un oyente para la interfaz. En mi situación, tuve que agregar al método emit() "add_to_chat_event" como primer parámetro en lugar de 'mi respuesta'