maxpetruk Posted November 25, 2012 Posted November 25, 2012 Как лучше организовать чат обмен сообщениями между пользователями. Основной вопрос как обновлять информацию, через таймер дергать постоянно БД не хочется. Какие есть простые варианты реализации? Quote
stas Posted November 26, 2012 Posted November 26, 2012 Как лучше организовать чат обмен сообщениями между пользователями. Основной вопрос как обновлять информацию, через таймер дергать постоянно БД не хочется. Какие есть простые варианты реализации? Добрый вечер, предположим у Вас есть уже такой чат в стандартном приложении (не унигуи), причем организован он не через сокеты, а посредством базы данных. Как Вы будете поступать в этом случае ? Quote
maxpetruk Posted November 27, 2012 Author Posted November 27, 2012 В данном случае буду использовать ивенты БД, то есть во время обновления таблицы база данных рассылает сообщения ивента с параметром адресата (получают все клиенты, и обновляются те у которых совпал параметр, например по уникальному идентификатору клиента) То есть, если например приложение использует трехзвенную архитектуру, как в моем случае, то добратьться до промежуточного звена таким способом проблем нет, но вот когда начинается HTTP протокол то тут проблемы поскольку он однонаправленный. Насколько мне известно существуют различные ухищрения для реализации псевдо-двунапарвленого общения сервера с клиентом: long polling, commet, reverse ajax - все это практически псевдонимы (можно почитать на википедии) а также существует новая технология websockets как часть стандарта HTML5 которая видимо действительно обеспечивает этот механизм связи. Даже есть компоненты для делфи. Как их прикрутить к уни гуи, я уже задавал вопрос но к сожалению без ответа он: http://forums.unigui.com/index.php?/topic/2468-bi-directional-communication-between-server-client/ Надеюсь найдутся люди которые все таки прояснят эту важную тему Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.