Автор | Сообщение |
|
| |
Пост N: 547
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.12.06 22:42. Заголовок: Чат в локальной сети
Понадобилось вот в программе реализовать чат. Есть у кого то наработки или мысли по этому поводу ? В проге у меня 30 пользователей , вот между ними и надо как то организовать чат........
|
|
|
Ответов - 8
[только новые]
|
|
|
| |
Пост N: 548
Зарегистрирован: 17.05.05
|
|
Отправлено: 20.12.06 23:42. Заголовок: Re:
Можно было бы написать по IPX/SPX (в СT для этого все есть), но не хотелось бы. Ни кто не встречал для Clipper библиотеки заточенную на TCP/IP ?
|
|
|
|
| |
Пост N: 6
Зарегистрирован: 08.11.06
|
|
Отправлено: 21.12.06 09:16. Заголовок: А нах ?
А зачем из клиппера? Бесплатных миничатов для лок.сети - пруд пруди.
|
|
|
|
| |
Пост N: 549
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.12.06 09:44. Заголовок: Re:
Из Clipper , потому как большую часть времени народ проводит именно в этой проге (моей) , такова специфика работы у них. Все бесплатные миничаты виндовые и при вызове юзера сворачивают основную программу на Clipper , что не удобно.
|
|
|
|
| |
Пост N: 49
Зарегистрирован: 08.07.06
|
|
Отправлено: 21.12.06 11:04. Заголовок: Re:
У меня такая-же фигня... Решил её таким образом: завел табличку со след. структурой: ---- от кого кому дата/время создания сообщения дата/время прочтения сообщения дата/время доставки сообщения (например, отложенное, "самому себе", типа "напоминалки" получится) текст сообщения ---- Вызовом OnIdle() через 30 секунд проверяю размер и дату/время модификации таблички: если с прошлого раза не изменилась, значит новых сообщений и нет. Если есть изменения - проверяю: нет ли чего для текущего юзера, если есть - вывожу информацию в уголке экрана. Для работы с "напоминалками" - запоминаю время срабатывания "ближайшей" напоминалки для этого пользователя, и даже, если размеры/время таблички не изменились, открываю табличку и вывожу инфу о "поспевших" сообщениях. --- Для закрытия текста от особо "шаловливых" использую простейшее шифрование. --- Система работает, не так шустро, как аська, но и такую задачу не ставил перед собой - ведь это все-же складская программа, а чат для нее - дело второстепенное... в среднем, при самом плохом раскладе извещение о сообщении приходит в течении 30-40 секунд. Если очень нужно, можно укоротить интервал проверки. Будут вопросы по реализации - готов обсудить.
|
|
|
|
| |
Пост N: 550
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.12.06 15:12. Заголовок: Re:
Sergy Спасибо за идею !!! Обдумаю и задам вопросы если возникнут.
|
|
|
|
| постоянный участник
|
Пост N: 192
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.12.06 21:16. Заголовок: Re:
Я в своей проге открываю общую базу (NETUSERS), записываю туда при входе в прогу код оператора и время. При выходе каждый оператор удаляет свою запись. Открываю еще одну базы (ERROR) для передачи параметров для работающих в данный момент в проге. Если нужно кого нибудь выгнать из проги, ввожу ручками его код, сообщение которое нужно высветить у него в проге и "код режима" (1-общий выход из проги, 2-выход по времени, 3-выход одного оператора, 4-просто сообщение и т.д.). Прога (раз в минуту или две) во всех режимах (за исключения расчетов) проверяет эту базу. если код оператора проги совпадает с кодом оператора в базе ERROR то выполняется действие по "коду режима" Туповато конечно, но лет 5 работает. Хотелось бы на Харборе сделать что-нибудь поприличней.
|
|
|
|
| |
Пост N: 551
Зарегистрирован: 17.05.05
|
|
Отправлено: 21.12.06 22:43. Заголовок: Re:
Andrey пишет: цитата: | Прога (раз в минуту или две) во всех режимах (за исключения расчетов) проверяет эту базу |
| Чем проверяешь ?
|
|
|
|
| постоянный участник
|
Пост N: 194
Зарегистрирован: 12.09.06
|
|
Отправлено: 21.12.06 23:04. Заголовок: Re:
Создана специальная функция Proverka() и везде она натыкана в программе, но только когда юзер ничего не вводит, только тогда она лезет в проверку, т.е. у меня везде стоит ожидание в цикле Tbrowse, Achoice, Menu короче везде. Когда прога лезет в Proverka() то там просто цикл считывания записей. База состоит всего из 10 записей. И если в поле "Код режима" стоит цифра, то начинаю обработку по этой цифре. (1-общий выход из проги, 2-выход по времени, 3-выход одного оператора, 4-просто сообщение и т.д.) Если интересно могу выдрать куски из своей проги.
|
|
|
|