Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2019, 16:54   #11
Janek Parviste
Пользователь
 
Регистрация: 10.07.2019
Сообщений: 18
По умолчанию погодите. а что Вы понимаете под "постоянной связью" ? websocket тут не при чём. проблема ваша у том, что Вы хотите получить уведомление об БД о том, что записи в ней изменились. Н

Да, совершенно верно, я хочу получать от БД уведомления о том, что записи в ней изменились. Сейчас я использую для этого периодические AJAX запросы с вебсайта.
У MSSQL есть вариант с Track Data Changes (SQL Server): https://docs.microsoft.com/en-us/sql...ql-server-2017
Только как создать связь между PHP и Track Data Changes (SQL Server) ?
Janek Parviste вне форума Ответить с цитированием
Старый 10.07.2019, 16:58   #12
Janek Parviste
Пользователь
 
Регистрация: 10.07.2019
Сообщений: 18
По умолчанию А как вам постоянная связь поможет? Там запросы не нужны будут чтоли?

При постоянной связи с БД можно будет отследить изменение в БД и потом с помощью вебсокета послать сообщение на сайт пользователяю
Janek Parviste вне форума Ответить с цитированием
Старый 10.07.2019, 17:00   #13
Janek Parviste
Пользователь
 
Регистрация: 10.07.2019
Сообщений: 18
По умолчанию И интерфейс сайта обновляется каждую мс? А действительно ли нужны настолько актуальные данные?

Если это чат на сайте, то нужны актуальные данные. Чат сохраняет сообщения в БД MSSQL.
Интерфейс сайта обновляется в том смысле, что сообщения появляются в чате.
Janek Parviste вне форума Ответить с цитированием
Старый 10.07.2019, 17:10   #14
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Janek Parviste Посмотреть сообщение
Только как создать связь между PHP и Track Data Changes (SQL Server) ?
Долбить СУБД запросами были ли изменения.

Цитата:
Сообщение от Janek Parviste Посмотреть сообщение
Если это чат на сайте, то нужны актуальные данные.
И это провал архитектуры, если для чата вы так собираетесь напрячь БД. Пишите обычного демона для чата: новые сообщения - пишет в бд и рассылает клиентам, новым клиентам - выгружает часть истории, если надо... Можете даже его на веб-сокеты повесить.

https://phppot.com/php/simple-php-chat-using-websocket/
p51x на форуме Ответить с цитированием
Старый 10.07.2019, 17:13   #15
Janek Parviste
Пользователь
 
Регистрация: 10.07.2019
Сообщений: 18
По умолчанию И это провал архитектуры, если для чата вы так собираетесь напрячь БД. Пишите обычного демона для чата: новые сообщения - пишет в бд и рассылает клиентам, новым клиентам - выгружае

Объясните пожалуйста подробнее, почему это "провал архитектуры", если сообщения чата сохраняются в БД?
Janek Parviste вне форума Ответить с цитированием
Старый 10.07.2019, 17:16   #16
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Janek Parviste Посмотреть сообщение
Объясните пожалуйста подробнее, почему это "провал архитектуры", если сообщения чата сохраняются в БД?
провал не в том, что сообщения сохраняются в БД,
провал в том, что приход сообщения никак не отслеживается.
по хорошему - присланное сообщение должно сервером тут же отправляться всем подписанным на этот чат.
и для этого websocket подходит просто идеально!
а куда сообщения сохраняются и есть ли к ним доступ у тех, кто пришёл в час позже - это уже совсем другой вопрос.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 10.07.2019, 17:17   #17
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Как минимум потому что это дополнительная нагрузка на итак обычно нагруженную БД. Причем абсолютно не нужная. Плюс дополнительные сложности, когда все решается гораздо проще и эффективнее.
p51x на форуме Ответить с цитированием
Старый 11.07.2019, 08:44   #18
Janek Parviste
Пользователь
 
Регистрация: 10.07.2019
Сообщений: 18
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
провал не в том, что сообщения сохраняются в БД,
провал в том, что приход сообщения никак не отслеживается.
по хорошему - присланное сообщение должно сервером тут же отправляться всем подписанным на этот чат.
и для этого websocket подходит просто идеально!
а куда сообщения сохраняются и есть ли к ним доступ у тех, кто пришёл в час позже - это уже совсем другой вопрос.
Каким образом база данных MSSQL сообщит websocket серверу, что пришло новое сообщение?
Janek Parviste вне форума Ответить с цитированием
Старый 11.07.2019, 08:56   #19
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Она и не должна этого делать! Сервер принимает сообщения, рассылает клиентам и, если хочется, пишет в БД.
p51x на форуме Ответить с цитированием
Старый 11.07.2019, 09:18   #20
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Janek Parviste Посмотреть сообщение
Каким образом база данных MSSQL сообщит websocket серверу, что пришло новое сообщение?
согласен с ответом p51x.

Каким образом у Вас отправленное сообщение попадает в БД MSSQL ?
если его пишет непосредственно клиент (архитектура Клиент-Сервер БД), то это неправильно.
Должен быть сервер, обслуживащий клиентов - именно он занимается авторизацией, подпиской на чаты и именно он должен принимать сообщения от клиентов.
и рассылать их должен он.
Принятое сообщение он должен
1) разослать всем подписанным на этот чат
2) записать его в БД
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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