Форум » Clipper » Чат в локальной сети » Ответить

Чат в локальной сети

Dima: Понадобилось вот в программе реализовать чат. Есть у кого то наработки или мысли по этому поводу ? В проге у меня 30 пользователей , вот между ними и надо как то организовать чат........

Ответов - 8

Dima: Можно было бы написать по IPX/SPX (в СT для этого все есть), но не хотелось бы. Ни кто не встречал для Clipper библиотеки заточенную на TCP/IP ?

SadStar3: А зачем из клиппера? Бесплатных миничатов для лок.сети - пруд пруди.

Dima: Из Clipper , потому как большую часть времени народ проводит именно в этой проге (моей) , такова специфика работы у них. Все бесплатные миничаты виндовые и при вызове юзера сворачивают основную программу на Clipper , что не удобно.


Sergy: У меня такая-же фигня... Решил её таким образом: завел табличку со след. структурой: ---- от кого кому дата/время создания сообщения дата/время прочтения сообщения дата/время доставки сообщения (например, отложенное, "самому себе", типа "напоминалки" получится) текст сообщения ---- Вызовом OnIdle() через 30 секунд проверяю размер и дату/время модификации таблички: если с прошлого раза не изменилась, значит новых сообщений и нет. Если есть изменения - проверяю: нет ли чего для текущего юзера, если есть - вывожу информацию в уголке экрана. Для работы с "напоминалками" - запоминаю время срабатывания "ближайшей" напоминалки для этого пользователя, и даже, если размеры/время таблички не изменились, открываю табличку и вывожу инфу о "поспевших" сообщениях. --- Для закрытия текста от особо "шаловливых" использую простейшее шифрование. --- Система работает, не так шустро, как аська, но и такую задачу не ставил перед собой - ведь это все-же складская программа, а чат для нее - дело второстепенное... в среднем, при самом плохом раскладе извещение о сообщении приходит в течении 30-40 секунд. Если очень нужно, можно укоротить интервал проверки. Будут вопросы по реализации - готов обсудить.

Dima: Sergy Спасибо за идею !!! Обдумаю и задам вопросы если возникнут.

Andrey: Я в своей проге открываю общую базу (NETUSERS), записываю туда при входе в прогу код оператора и время. При выходе каждый оператор удаляет свою запись. Открываю еще одну базы (ERROR) для передачи параметров для работающих в данный момент в проге. Если нужно кого нибудь выгнать из проги, ввожу ручками его код, сообщение которое нужно высветить у него в проге и "код режима" (1-общий выход из проги, 2-выход по времени, 3-выход одного оператора, 4-просто сообщение и т.д.). Прога (раз в минуту или две) во всех режимах (за исключения расчетов) проверяет эту базу. если код оператора проги совпадает с кодом оператора в базе ERROR то выполняется действие по "коду режима" Туповато конечно, но лет 5 работает. Хотелось бы на Харборе сделать что-нибудь поприличней.

Dima: Andrey пишет: Прога (раз в минуту или две) во всех режимах (за исключения расчетов) проверяет эту базу Чем проверяешь ?

Andrey: Создана специальная функция Proverka() и везде она натыкана в программе, но только когда юзер ничего не вводит, только тогда она лезет в проверку, т.е. у меня везде стоит ожидание в цикле Tbrowse, Achoice, Menu короче везде. Когда прога лезет в Proverka() то там просто цикл считывания записей. База состоит всего из 10 записей. И если в поле "Код режима" стоит цифра, то начинаю обработку по этой цифре. (1-общий выход из проги, 2-выход по времени, 3-выход одного оператора, 4-просто сообщение и т.д.) Если интересно могу выдрать куски из своей проги.



полная версия страницы