Чат Delphi

Статус
В этой теме нельзя размещать новые ответы.

Temoxa

Пользователь
Регистрация
06.02.15
Сообщения
23
Реакции
0
Баллы
6
Привет!) ни у кого нет примеров реализации чата на Delphi через бд ms sql server?

Пока я реализовал это как панель юзеров, которая представляет собой cxGrid и обновляется по таймеру каждые 3сек., кликаешь по юзеру открывается окно чата с ним, там тоже cxGrid сообщения обновляются раз в 2сек.

Это быдло реализация... Хочу переделать через потоки, и т.д. но практики в этой сфере не хватает. Есть примеры у кого?)
 

Temoxa

Пользователь
Регистрация
06.02.15
Сообщения
23
Реакции
0
Баллы
6
Было б неплохо исходники чата именно с MS SQL... Как реализовать запрос данных о полученных сообщения в потоке?
Как реализовать в потоке перерисовку чата? и т.д....
 

LeshaRB

Пользователь
Регистрация
11.06.07
Сообщения
112
Реакции
0
Баллы
56
Адрес
Минск
http://g.zeos.in/?q=chat%20delphi%20example&m=1

Вторая ссылка

На серверной стороне подключай хоть sql бд, хоть не nosql бд
Логируй, храни сообщения итд

Только смысл ?
 

maxim220

Пользователь
Регистрация
18.06.06
Сообщения
28
Реакции
0
Баллы
2
Адрес
Russia, SPb
Если предполагается делать чат на MS SQL сервере, то самым сложным будет уведомление клиента сервером о событии - о том, что на для клиента на сервере есть новое сообщение. А в этой теме обсуждается этот вопрос.
 

maxim220

Пользователь
Регистрация
18.06.06
Сообщения
28
Реакции
0
Баллы
2
Адрес
Russia, SPb

Если предполагается делать чат на MS SQL сервере, то самым сложным будет уведомление клиента сервером о событии - о том, что на для клиента на сервере есть новое сообщение. А в этой теме обсуждается этот вопрос.
 

LeshaRB

Пользователь
Регистрация
11.06.07
Сообщения
112
Реакции
0
Баллы
56
Адрес
Минск
Если предполагается делать чат на MS SQL сервере, то самым сложным будет уведомление клиента сервером о событии - о том, что на для клиента на сервере есть новое сообщение. А в этой теме обсуждается этот вопрос.

И что сложного?
Опрашивать сервер?


Я не понимаю зачем вообще бд нужна
 

maxim220

Пользователь
Регистрация
18.06.06
Сообщения
28
Реакции
0
Баллы
2
Адрес
Russia, SPb
И что сложного?
Опрашивать сервер?
Я не понимаю зачем вообще бд нужна

Сервер опрашивать просто нельзя, особенно когда клиентов много. Если задача требует малых задержек, то вообще опрос не рассматривается. Типовая задача - чат внутри предприятия (вод тут-то и нужна нормальная БД для протоколирования всех бесед и поиска информации), или система оповещения пользователей о событиях в системе.
 

LeshaRB

Пользователь
Регистрация
11.06.07
Сообщения
112
Реакции
0
Баллы
56
Адрес
Минск
Сервер опрашивать просто нельзя, особенно когда клиентов много. Если задача требует малых задержек, то вообще опрос не рассматривается. Типовая задача - чат внутри предприятия (вод тут-то и нужна нормальная БД для протоколирования всех бесед и поиска информации), или система оповещения пользователей о событиях в системе.

Тот же comfortchat
требует Бд?
 

Temoxa

Пользователь
Регистрация
06.02.15
Сообщения
23
Реакции
0
Баллы
6
Тот же comfortchat
требует Бд?
У них свои сервиса СУБД полюбому) Тут мы говорим про свой лисепед)


Сервер опрашивать просто нельзя, особенно когда клиентов много. Если задача требует малых задержек, то вообще опрос не рассматривается. Типовая задача - чат внутри предприятия (вод тут-то и нужна нормальная БД для протоколирования всех бесед и поиска информации), или система оповещения пользователей о событиях в системе.
Да, ты совершенно верно понял в чем проблема) По идее она решается асинхроннами запросами с хинтом with no lock =) либо в отдельном потоке опрашивать)
 

maxim220

Пользователь
Регистрация
18.06.06
Сообщения
28
Реакции
0
Баллы
2
Адрес
Russia, SPb
Тот же comfortchat
требует Бд?

comfortchat тут не при чем. Вообще. И БД подобным вещам для работы с сообщениями не нужна, естественно. БД в чате реально нужна для корпоративных задач, когда существенным будет вопрос кто, что, кому сказал на определенную тему в заданный промежуток времени.
 

LeshaRB

Пользователь
Регистрация
11.06.07
Сообщения
112
Реакции
0
Баллы
56
Адрес
Минск
comfortchat тут не при чем. Вообще. И БД подобным вещам для работы с сообщениями не нужна, естественно. БД в чате реально нужна для корпоративных задач, когда существенным будет вопрос кто, что, кому сказал на определенную тему в заданный промежуток времени.

Тогда за чем сервер нужен?
Рефреш бд делай и радуйся
 

maxim220

Пользователь
Регистрация
18.06.06
Сообщения
28
Реакции
0
Баллы
2
Адрес
Russia, SPb
Тот же comfortchat
требует Бд?

comfortchat - не знаю. Он тут вообще не при чем. Автор темы, как я помню, хотел написать чат с использованием MS SQL. А почему он так решил, что это ему надо, - это его дело. Может просто хочет, может объективно надо.
 

master_devel

Пользователь
Регистрация
26.09.12
Сообщения
11
Реакции
0
Баллы
2
По-моему глупость использование таймера на форме. Учите матчасть для БД и поспользуйтесь компонентами FireDAC. У БД есть в триггерах обработка Event. FireDAC умеет этот Event получать и обрабатывать. Никаких таймеров тут не нужно использовать!
 

Ruslan82

Пользователь
Регистрация
05.02.11
Сообщения
22
Реакции
0
Баллы
6
ТС сам не понимает что хочет сделать, просто он кое как научился работать с бд мсскл и всё, не понимает даже что нет разницы с какой БД будет пример
 

AndyCrow

Пользователь
Регистрация
03.11.09
Сообщения
11
Реакции
0
Баллы
6
Возраст
45
http://docwiki.embarcadero.com/RADStudio/XE8/en/Database_Alerts_(FireDAC) почитай про работу с ивентами и написание чата сведется до их обработки. Клиент сам будет знать, когда рефрешить select (и юзеров и сообщений).

Добавлено через 1 минуту
Кстати, зачем потоки юзать?
 
Последнее редактирование модератором:

MikaelBox

Пользователь
Регистрация
25.11.15
Сообщения
11
Реакции
0
Баллы
2
Зачем использовать FireDAC, когда можно использовать православный ADO (dbGO)?
Зачем ловить события сервера, если сервер нужен только для регистрации пользователей и сохранения сообщений? Я вижу, что надо реализовывать работу с сокетами по TCP/IP с частичным использованием SQL для озвученных выше задач.
 

Temoxa

Пользователь
Регистрация
06.02.15
Сообщения
23
Реакции
0
Баллы
6
Кстати, зачем потоки юзать?
чтобы в фоне обрабатывать все... со времени бд будет большая, возможно запросы будут отрабатывать более 1с...
 

OtherSide

Пользователь
Регистрация
27.06.16
Сообщения
5
Реакции
0
Баллы
2
Может просто Skype? Он сам все данные хранит - можно вполне посмотреть кто когда и что говорил. В несколько кликов делаются конференции из любого числа участников, и смотри потом логи - хоть обсмотрись, хоть в файл записывай и сохраняй.
 

Pashaaaa

Пользователь
Регистрация
22.02.07
Сообщения
17
Реакции
0
Баллы
2
Возраст
42
Адрес
Москва
Автор, он в принципе и так будет где то 1с, а что бы было больше 1с это бд должна весить несколько гигабайт обычным чатом ты столько не забьёшь.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу