![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
Это обязательно сервер - клиент.
и сервер как то отсылает пакет клиенту? или можно черзе БД? к примеру MySql? |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
||||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
"клиент опрашивает сервер периодически" |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
ну ты в любом случае будешь опрашивать серверную часть приложения которая в свою очередь будет опрашивать БД. в принципе мне кажется не принципиально, тут нужно решить есть ли необходимость хранить всю историю твоего чата
|
|||
|
||||
Yagmort |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 339 Регистрация: 17.6.2009 Репутация: нет Всего: -1 |
Почитай про создание модели данных. создай 2 таблицы одна хранит пользователей, другая сообщения и перенеси ее в MySQL, можешь впринцепе использовать дополнительный редактор для MySQL - MySQL Front, далее присоедени ее к языку прораммирования и напиши скрип проверки логина и пароля, и сохранние сообщений в БД. Лучше использовать связку языков HTML+JavaSript+PHP и поставь себе сервер на локальный компьютер, (Apatch), но лучше поставь Denver он автоматом настраивается, а на woweb.ru найди готовые скрипты для чата если не хочешь писать ручками... Вообщем для начинающего это геморой, а так ничего сложного. Удачи
Добавлено @ 14:59 Если пишеш чат, то это будет тонкий клиент. А вообще логи чатов хранятся в .txt формате... так что лучше использовать его вместо СУБД Это сообщение отредактировал(а) Yagmort - 26.10.2010, 15:02 |
|||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
я ему про .net и десктоп а он мне про php. ты чего, не логи а история. Экскалупатор, ну в общем если мой клиент будет все все время спрашивать бд на запрос "дай мне те сообщения которые я не виде" - это будет нормально?? и грузить сильно будет? или так и делается? да, историю 100% надо хранить. даже скажу больше её надо пихнуть на сайт. |
|||
|
||||
gambit |
|
|||
![]() Эксперт ![]() ![]() ![]() Награды: 1 Профиль Группа: Комодератор Сообщений: 1359 Регистрация: 25.6.2006 Где: я? Репутация: 3 Всего: 40 |
||||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
так как это сделать на реально проекте? использовать сокеты?
|
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
я думаю не очень нормально, лучше наоборот. как мне кажется клиент должен просто периодически проверять соединение с сервером а остальное время ждать подключение к себе от сервера. но это имхо, потому как я никогда чатов не писал. просто думаю что если пользователей будет много то они за DDOS`ят сервер к чертям. |
|||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
спасибо, жду ответа от того кто имел дело с этим...
Экскалупатор, я вообще так же думаю, но вот как это сделать не знаю. технология WPF |
|||
|
||||
wester |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 3 Всего: 13 |
DenWPF,
зачем ждать ? просто достаточно подумать, мои соображения (после 5 часов отладки в голове творится ужас, но все же) к серверу коннектится два клиента, один клиент отправляет сообщение на сервер. Сервер записывает его в БД, отправляет получателю , и ставит этому сообщению флаг "отправлено/доставлено получателю" и вот так в цикле. |
|||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
это ты не про чат, а про личную переписку. это легко решается чезрез простое mysql бд и запрос к ней..
|
|||
|
||||
wester |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 27.2.2009 Репутация: 3 Всего: 13 |
DenWPF,
эмм... а по твоему чат это должно быть что - то большое и неповоротливое ? и вообще http://tinyurl.com/34pjkm8 |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
что то я не пойму в чем у тебя возникли сложности. с архитектурой приложения? чем не подходит WCF? и по верх него все это запускать? как мне кажется должно быть как то так:
клиент: соединяется с сервером и сообщает ему свои координаты для обратной связи(ну или сервер их сам узнает и сохраняет). можно добавить сообщения серверу об изменении своего статуса(отошел, не доступен и пр.) и ждет сообщения от сервера. время от времени подтверждает свой статус и проверяет доступность соединения с сервером. ну собсна получает и отправляет сообщения. наверное было бы не плохо что бы отправлял серверу подтверждение что сообщение принято, дабы сервер мог отметить у себя что все "ок". сервер: ждет подключения клиентов. сохраняет данные о них, для того что бы можно было обратиться к клиенту(ip/port). при получении сообщения отправляет его адресату и записывает лог, при получении ответа клиента, что принято сообщение, отмечает что отправлено. при подключении клиента должен проверить нет ли неотправленных сообщений, если есть то отправить. периодически проверять клиентов, что они все тут и не отпал ли кто из них без его ведома(можно по тайм ауту отбрасывать). данные о подключении хранить в виде: логин, адрес. когда получает сообщение то сопоставлять по логину адрес и отправлять адресату. ну как то так я себе представляю этот процесс. может чего не учел, так это только набросок, но мысль вроде ясна. Добавлено через 4 минуты и 43 секунды наличие БД, конечно все усложняет. как мне кажется чаты(аськи и иже с ними) логи не хранят на сервере. хранят у клиентов. но если у тебя стоит задача создать такой чат... то тут никуда не денешься, бери и прикручивай БД. это в любом случае будет лучше текстовых файлов. если учесть что работать все это будет по сети то думаю что задержку в 1-2 сек. никто не заметит. зато получишь удобное хранилище логов, с которым потом же удобно будет работать(тебе же для чего то эти логи нужны...). |
|||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
вот и трабл WCF - не работал так нам его и не дали=((
а серверами я работал только в java. и то сервер делал у себя на машине, а клиент у себя на машине))) я не понимаю как создать свой сервер и работать сним =( |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
что значит не "дали"? не разрешили использовать? тогда напиши что разрешили. или не знаешь как использовать? тогда надо найти толковую книжку. в принципе там нет ничего сложного(намного проще сокетов про которые ты тут упоминал) ну фактически у тебя должно получиться два приложения. у них должны быть общие интерфейсы для работы с друг другом. к примеру: серввер предоставляет интерфейс(определенный набор методов) для работы с собой. клиент знает о предоставленном интерфейсе и общается с сервером посредством методов описанных в интерфейсе. сервер с клиентом точно так же только в обратную сторону, сервер делает коннект к клиенту и заставляет того что то делать. |
|||
|
||||
mrbrooks |
|
|||
![]() трололомен ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4259 Регистрация: 4.10.2006 Где: Дол Гулдур Репутация: 17 Всего: 306 |
все верно. только слово интерфейс надо заменить на контракт ![]() вообще если ориентация на .NET, то WCF - достаточно целомудренное решение. реализация чата - это скорее модель peer-to-peer, чем client-server |
|||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
честно сказать просто боюсь слова WCF - и нам на учебе его должны были дать, но дадут, только к зимой.
на что нужно поставить wcf приложение(сервера) на фтп? или нужно спецальный хостинг? - я вот эту часть не понимаю. |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
||||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
где будет лежать сервер?
мне не локально надо, а надо что бы люббой из нета зайти мог имея клиент |
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 6 Всего: 118 |
имхо нафиг изобретать селосипед, когда уже есть готовые протоколы вроде XMPP (Jabber) и готовые сервера и библиотеки для них?
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Экскалупатор |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1746 Регистрация: 1.4.2009 Где: г. Минск Репутация: 5 Всего: 24 |
||||
|
||||
DenWPF |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1659 Регистрация: 26.9.2009 Репутация: нет Всего: 1 |
я не когда это не делал вот и спрашиваю. ![]() |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | .NET для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |