Я создаю чат-приложение только на основе Flask SocketIO, без базы данных. Одно из требований - когда новый пользователь подключается, приложение должно отображать предыдущие сообщения. Я сохраняю каждое сообщение в массив при каждом событии отправки. Хорошо, теперь проблема в том, что когда пользователь A подключается и создает несколько сообщений, а затем подключается пользователь B, отображаются все предыдущие сообщения от пользователя B, но затем пользователь A также получает эти сообщения, поэтому пользователь A заканчивает дублированными сообщениями.
Клиентская сторона JS
function myFunction() {
document.getElementById('demo').style['text-decoration']='underline';
}
const socket = io.connect("http://127.0.0.1:5000");
socket.on('connect', function() {
socket.emit('sync_messages');
socket.emit('sync_channels');
});
Flask Код приложения
@socketio.on('sync_messages')
def handle_sync():
socketio.emit('show_all_messages', messages)
@socketio.on('sync_channels')
def handle_sync_channels():
socketio.emit('show_all_channels', channels)
Визуальное представление происходящего
что фактическая ошибка: