![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Пользователь
Регистрация: 10.07.2019
Сообщений: 18
|
![]()
Да, совершенно верно, я хочу получать от БД уведомления о том, что записи в ней изменились. Сейчас я использую для этого периодические AJAX запросы с вебсайта.
У MSSQL есть вариант с Track Data Changes (SQL Server): https://docs.microsoft.com/en-us/sql...ql-server-2017 Только как создать связь между PHP и Track Data Changes (SQL Server) ? |
![]() |
![]() |
![]() |
#12 |
Пользователь
Регистрация: 10.07.2019
Сообщений: 18
|
![]()
При постоянной связи с БД можно будет отследить изменение в БД и потом с помощью вебсокета послать сообщение на сайт пользователяю
|
![]() |
![]() |
![]() |
#13 |
Пользователь
Регистрация: 10.07.2019
Сообщений: 18
|
![]()
Если это чат на сайте, то нужны актуальные данные. Чат сохраняет сообщения в БД MSSQL.
Интерфейс сайта обновляется в том смысле, что сообщения появляются в чате. |
![]() |
![]() |
![]() |
#14 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,724
|
![]() Цитата:
И это провал архитектуры, если для чата вы так собираетесь напрячь БД. Пишите обычного демона для чата: новые сообщения - пишет в бд и рассылает клиентам, новым клиентам - выгружает часть истории, если надо... Можете даже его на веб-сокеты повесить. https://phppot.com/php/simple-php-chat-using-websocket/ |
|
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 10.07.2019
Сообщений: 18
|
![]()
Объясните пожалуйста подробнее, почему это "провал архитектуры", если сообщения чата сохраняются в БД?
|
![]() |
![]() |
![]() |
#16 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
провал в том, что приход сообщения никак не отслеживается. по хорошему - присланное сообщение должно сервером тут же отправляться всем подписанным на этот чат. и для этого websocket подходит просто идеально! а куда сообщения сохраняются и есть ли к ним доступ у тех, кто пришёл в час позже - это уже совсем другой вопрос. |
|
![]() |
![]() |
![]() |
#17 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,724
|
![]()
Как минимум потому что это дополнительная нагрузка на итак обычно нагруженную БД. Причем абсолютно не нужная. Плюс дополнительные сложности, когда все решается гораздо проще и эффективнее.
|
![]() |
![]() |
![]() |
#18 | |
Пользователь
Регистрация: 10.07.2019
Сообщений: 18
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#19 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,724
|
![]()
Она и не должна этого делать! Сервер принимает сообщения, рассылает клиентам и, если хочется, пишет в БД.
|
![]() |
![]() |
![]() |
#20 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Каким образом у Вас отправленное сообщение попадает в БД MSSQL ? если его пишет непосредственно клиент (архитектура Клиент-Сервер БД), то это неправильно. Должен быть сервер, обслуживащий клиентов - именно он занимается авторизацией, подпиской на чаты и именно он должен принимать сообщения от клиентов. и рассылать их должен он. Принятое сообщение он должен 1) разослать всем подписанным на этот чат 2) записать его в БД |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
cmd realtime и pipe | firstoxe | Общие вопросы Delphi | 2 | 15.07.2015 14:49 |
MSSQL 2005 text data type | BloodWizard | SQL, базы данных | 7 | 25.10.2010 17:30 |
IdPOP31.Retrieve(n,Msg);//Задумывается навсегда( | Biohazard | Работа с сетью в Delphi | 0 | 09.10.2010 13:41 |
Видео в режиме realtime | Holly1444 | Помощь студентам | 2 | 23.08.2009 17:07 |