браузере в js открывается соединение с сокетом если пишет какой то юзер, и закрывается ли соединение со временем? нужно ли на сервеной части делать если например юзера общались между собой и в какой то момент перестали, как понять когда держать соединение а когда закрывать
О каком чате речь?
ну не прям сокет, а вебсокет, и он закрывается при уходе со страницы
Вопрос слишком общий, схем реализации чатов вагон и маленькая тележка
В общем-то браузер может просто держать открытое вебсокет соединение с сервером постоянно
Websockets; при подключении одного из юзеров к чату, получай историю чата по http, далее подключайся по WS. Я советую интерпритировать для себя это как "комната" - можешь на сервере в глобал скоупе держать список комнат, в которых находятся веб сокеты, которым можно выполнить broadcast сообщения, а после ещё и сохранять в бд
да, но я изучил чуток вебсокеты(socket-io) и там можно подключаться к какому то определенному endpoint-у. Напимер к какой то определенной комнате вебсокета
WUT? У вебсокетов нет понятия комнаты.
Напиши эндпоинт WS отдельный для чата. Я не очень за 1 ws эндпоинт для всех соединений типа уведомлений и чатов (всё в одном потоке сообщений), как тут пишут некоторые. А "комната" - это для твоего понимания проектирования чата
> как тут пишут некоторые WUT?
ну а возможно ли со стороны js подключиться к сокету, а дальше подписаться на разные "комнаты" эндпоинты?
Ну не нужно было "можем держать одно соединение постоянно" :) :( . Это конечно очень хорошо, так как меньше накладных расходов на подключение, но энивей для проектирования будет сложнее понимать. А так, послал нагрузку с ид чатом и установил WS соединение которое нужно
Да, ты подключишься при помощи JS на клиенте
спасибо. А что насчет того что если юзер не подключен к какой то 'комнате'. И кто то написал впервые, как покдлючить юзера-получателя к какой то комнате?
Так эта абстракция будет в ОЗУ и только для рассылки сообщений в реальном времени. А так, все сообщения будут в любом случае при отправке сохраняться в бд, а там уже как захочешь: можешь таблицу чатов составить, всё на твоё усмотрение
Обсуждают сегодня