@mefisto661

Как реализовать индивидуальный чат на SocketIo Flask?

Пишу соц.сеть. Как реализовать чат между пользователями тет-а-тет? Точнее: имеется url: user/ - страница пользователя, чат там же. При отправлении запроса через socketio в js, я могу указать url конкретного пользователя ("{{ url_for('user', id_user=user.id) }}"). На стороне сервера, на flask, как мне нужно прописать namespace чтобы запрос со страницы Nого пользователя приходил на Nый сокет? Если прописывать namespace руками (user/2) то все работает, но , понятное дело - только для второго пользователя. Можно ли вообще так сделать? Альтернатива - сделать отдельный url (/chat) куда будут идти все сообщения от всех пользователей. В сообщении передавать id отправителя, доставать из бд все сообщения этого отправителя, и возвращать массивом. Вроде неохота)
  • Вопрос задан
  • 157 просмотров
Решения вопроса 1
@mefisto661 Автор вопроса
Реализовал следующим образом: Js создает 2 сокет-соединения (c url`ами /chat и {{ url_for('user', id_user=user.id) }}. Сокет /chat только отправляет, сокет {{ url_for('user', id_user=user.id) }} только принимает ответы от сервера. На сервере всего одна функция @socketio.on('message') - записывает в бд и возвращает 2 ответа:
send(..... namespace = url_for('user', id_user=айди_отправителя)
send(.... namespace = url_for('user', id_user=айди_получателя).
Айди_отправителя и Айди_получателя отправляются через сокет с клиента вместе с сообщением.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы