|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
10.07.2019, 16:54 | #11 |
Пользователь
Регистрация: 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) ? |
10.07.2019, 16:58 | #12 |
Пользователь
Регистрация: 10.07.2019
Сообщений: 18
|
А как вам постоянная связь поможет? Там запросы не нужны будут чтоли?
При постоянной связи с БД можно будет отследить изменение в БД и потом с помощью вебсокета послать сообщение на сайт пользователяю
|
10.07.2019, 17:00 | #13 |
Пользователь
Регистрация: 10.07.2019
Сообщений: 18
|
И интерфейс сайта обновляется каждую мс? А действительно ли нужны настолько актуальные данные?
Если это чат на сайте, то нужны актуальные данные. Чат сохраняет сообщения в БД MSSQL.
Интерфейс сайта обновляется в том смысле, что сообщения появляются в чате. |
10.07.2019, 17:10 | #14 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Цитата:
И это провал архитектуры, если для чата вы так собираетесь напрячь БД. Пишите обычного демона для чата: новые сообщения - пишет в бд и рассылает клиентам, новым клиентам - выгружает часть истории, если надо... Можете даже его на веб-сокеты повесить. https://phppot.com/php/simple-php-chat-using-websocket/ |
|
10.07.2019, 17:13 | #15 |
Пользователь
Регистрация: 10.07.2019
Сообщений: 18
|
И это провал архитектуры, если для чата вы так собираетесь напрячь БД. Пишите обычного демона для чата: новые сообщения - пишет в бд и рассылает клиентам, новым клиентам - выгружае
Объясните пожалуйста подробнее, почему это "провал архитектуры", если сообщения чата сохраняются в БД?
|
10.07.2019, 17:16 | #16 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
провал в том, что приход сообщения никак не отслеживается. по хорошему - присланное сообщение должно сервером тут же отправляться всем подписанным на этот чат. и для этого websocket подходит просто идеально! а куда сообщения сохраняются и есть ли к ним доступ у тех, кто пришёл в час позже - это уже совсем другой вопрос. |
|
10.07.2019, 17:17 | #17 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Как минимум потому что это дополнительная нагрузка на итак обычно нагруженную БД. Причем абсолютно не нужная. Плюс дополнительные сложности, когда все решается гораздо проще и эффективнее.
|
11.07.2019, 08:44 | #18 | |
Пользователь
Регистрация: 10.07.2019
Сообщений: 18
|
Цитата:
|
|
11.07.2019, 08:56 | #19 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Она и не должна этого делать! Сервер принимает сообщения, рассылает клиентам и, если хочется, пишет в БД.
|
11.07.2019, 09:18 | #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 |