|
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
|
||||||||||||||||||||||||||
Поместить переписку в БД14.11.2019, 12:48. Показов 4344. Ответов 28
Здрасте всем, дела обстоят так, сделал и настроил переписку между пользователями, но все это в режиме реального времени, т.е. без участия базы данных, в целом на проект можете посмотреть тут: Сервер Фронтенд
Далее хочу сделать чтобы это работало так - пользователи переписываются, один отключается, второй продолжает писать, и когда первый вошел сново в сеть, он мог открыть чат и увидеть написанное ранее и всю переписку в целом. Не могу разобрать устройство таблицы в бд и как доставать оттуда нужную переписку... Буду рад любой помощи. Теперь пробежим по коду: Серверная часть: Сам ХАБ:
ну и контекст БД:
0
|
||||||||||||||||||||||||||
| 14.11.2019, 12:48 | |
|
Ответы с готовыми решениями:
28
Загрузка изображений в переписку ВК Показываем переписку тикета Хочу восстановить переписку в контакте |
|
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
|
|
| 14.11.2019, 12:53 | |
|
Lucky64, предлагаю организовать бд по типу чата, то есть ид,таймштамп,никнейм,сообщение
ну и при подключении доставать только то что нужно для текущего отображения, при прокрутке, доставать больше если вопрос в прочитанности юзером сообщений то нужна ещё бд юзеров по типу ид,никнейм,таймштамп и беря от туда таймштамп тянуть из первой таблы записи можно ещё хитрым способом в первую таблу писать дисконект юзера и тянуть данные после него
0
|
|
|
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
|
|||||||||||||||||||||||||||
| 15.11.2019, 09:51 [ТС] | |||||||||||||||||||||||||||
![]() Добавлено через 3 минуты User-ganz, плюс у нас уже есть таблица друзей, вот думаю может добавить туда список сообщений между этими друзьями, что то типа - List <string> Messages и потом пополнять, либо создать модель сообщения... крч пока разобрался с сигналР, ткая каша в голове ![]() Добавлено через 4 часа 2 минуты User-ganz, собрал из г..на и палок вот такое ... даже не знаю как назвать... На сервере: Модель
что скажете?
0
|
|||||||||||||||||||||||||||
|
Костыли любой сложности
201 / 146 / 36
Регистрация: 27.10.2019
Сообщений: 843
|
|
| 16.11.2019, 12:01 | |
|
Lucky64, в таком случае просто добавляем к таблице с сообщениями ещё один столбец с идшками\именами адресатов, и делаем выборку по LIKE но не забываем о похожести те о необходимости разделителя тк лайк 1 выберет и 111 но не лайк ' 1 '
0
|
|
|
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
|
||||||||||||||||||||||
| 17.11.2019, 10:50 [ТС] | ||||||||||||||||||||||
Добавлено через 8 минут И еще такой вопрос, если вы заметили то таблица сообщений никак не связана с юзерами, т.е. у нее есть все айдишники итп, но всю связь я делаю вручную через Метод добавления сообщений в бд:
0
|
||||||||||||||||||||||
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,476
|
|
| 17.11.2019, 11:00 | |
|
Lucky64, а я бы немного изменил модель данных. Ввёл бы сущность "Адресат" и из сущности "Message" ссылался бы на неё. "Адресат" бы содержал коллекцию пользователей. Так, если в этой коллекции один пользователь - сообщение приватное, если несколько - то сообщение групповое. Таким образом чатик начнёт поддерживать комнаты \ группы как во всяких телеграммах\ватсапах\слаках и прочих подобных штуках.
Добавлено через 5 минут И вообще, не смотря на то, что я ангуляр очень люблю и уважаю, с выходом .NET Core 3 стоит попробовать использовать Blazor Server Side. Тогда у вас и фронт-энд будет на C#. Круто же.
1
|
|
|
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
|
||
| 17.11.2019, 12:32 [ТС] | ||
0
|
||
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,476
|
|||||||
| 18.11.2019, 07:21 | |||||||
1
|
|||||||
|
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
|
|
| 18.11.2019, 11:09 [ТС] | |
|
Usaga, так, исправлю способ доставания, плс подскажите где еще проблемы? Если не сложно...
0
|
|
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,476
|
|
| 18.11.2019, 11:44 | |
|
Lucky64, ещё из плохого: работа с контекстом EF'а прямо из контроллеров. Под два HttpGet атрибута на каждом методе контроллера (должен быть атрибут). В сущностях EF'а нет навигационных свойств. Та же болячка и в коде компонентов ангуляра: прямая работа с HttpClient прямо из самого компонента.
1
|
|
|
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
|
||
| 18.11.2019, 13:10 [ТС] | ||
|
0
|
||
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,476
|
|||||||
| 18.11.2019, 13:36 | |||||||
И то, что вы с EF голым работаете прямо в контроллерах - тоже. Вы такое могли на учебных примерах видеть. Это ОК. Это для простоты примеров делалось, а не потому, что это правильно.
1
|
|||||||
|
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
|
||||
| 18.11.2019, 16:05 [ТС] | ||||
![]() ![]() спасибо заранее!!!
0
|
||||
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,476
|
||||
| 18.11.2019, 16:27 | ||||
|
1
|
||||
|
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
|
||||||||||||
| 19.11.2019, 08:23 [ТС] | ||||||||||||
Добавлено через 10 минут Usaga, нет не годно, уже понял, работаю дальше ![]() Добавлено через 17 минут Вот так заработало:
0
|
||||||||||||
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,476
|
|
| 19.11.2019, 08:35 | |
|
Lucky64, условие в Where не правильное. Вам нужны сообщения между двумя конкретными пользователями. А вы выгребаете сообщения в которых фигурирует хотя бы один пользователь (из двух искомых), а потом в оперативке уже вытаскиваете сообщения конкретной пары пользователей. Это не правильно.
Добавлено через 6 минут Lucky64, кстати, сортировки по дате поступления сообщений тоже нет. Видимо, идёт рассчёт на то, что порядок определяемый первичным ключом будет совпадать с порядком добавления сообщений в базу. Но это не всегда верно и не правильно на это завязываться.
1
|
|
|
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
|
||||||||
| 19.11.2019, 08:50 [ТС] | ||||||||
|
переписал вот так, и вроде все теперь работает как надо
![]()
0
|
||||||||
|
14321 / 9411 / 1356
Регистрация: 21.01.2016
Сообщений: 35,476
|
||||||
| 19.11.2019, 09:00 | ||||||
|
Lucky64,
0
|
||||||
|
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
|
||||||||||||
| 19.11.2019, 09:16 [ТС] | ||||||||||||
|
Добавлено через 4 минуты Usaga, Добавил дату и время:
0
|
||||||||||||
|
20 / 9 / 0
Регистрация: 16.01.2019
Сообщений: 288
|
|
| 19.11.2019, 09:21 [ТС] | |
|
Хотя в чате все заработало
0
|
|
| 19.11.2019, 09:21 | |
|
Помогаю со студенческими работами здесь
20
Реализовать внутреннюю переписку на сайте Восстановить переписку в Outlook Express Как лучше хранить переписку?
Как перевернуть переписку в HTML& Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|