Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как пишуться чаты? 
:(
    Опции темы
DenWPF
Дата 25.10.2010, 22:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



Это обязательно сервер - клиент.
и сервер как то отсылает пакет клиенту?

или можно черзе БД? к примеру MySql?
PM MAIL   Вверх
Экскалупатор
Дата 26.10.2010, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



Цитата(DenWPF @  25.10.2010,  21:41 Найти цитируемый пост)

и сервер как то отсылает пакет клиенту?

сервер знает своих клиентов или клиент опрашивает сервер периодически...



Цитата(DenWPF @  25.10.2010,  21:41 Найти цитируемый пост)

или можно черзе БД? к примеру MySql? 


как ты себе это представляешь?
PM MAIL ICQ   Вверх
DenWPF
Дата 26.10.2010, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



Цитата

как ты себе это представляешь?


"клиент опрашивает сервер периодически"
PM MAIL   Вверх
Экскалупатор
Дата 26.10.2010, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



ну ты в любом случае будешь опрашивать серверную часть приложения которая в свою очередь будет опрашивать БД. в принципе мне кажется не принципиально, тут нужно решить есть ли необходимость хранить всю историю твоего чата
PM MAIL ICQ   Вверх
Yagmort
Дата 26.10.2010, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
DenWPF
Дата 26.10.2010, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



Цитата(Yagmort @ 26.10.2010,  14:58)
Почитай про создание модели данных. создай 2 таблицы одна хранит пользователей, другая сообщения и перенеси ее в MySQL, можешь впринцепе использовать дополнительный редактор для MySQL - MySQL Front, далее присоедени ее к языку прораммирования и напиши скрип проверки логина и пароля, и сохранние сообщений в БД. Лучше использовать связку языков HTML+JavaSript+PHP и поставь себе сервер на локальный компьютер, (Apatch), но лучше поставь Denver он автоматом настраивается, а на woweb.ru найди готовые скрипты для чата если не хочешь писать ручками... Вообщем для начинающего это геморой, а так ничего сложного. Удачи

Добавлено @ 14:59
Если пишеш чат, то это будет тонкий клиент.


А вообще логи чатов хранятся в .txt формате... так что лучше использовать его вместо СУБД

я ему про .net и десктоп а он мне про php.

ты чего, не логи а история.


Экскалупатор, ну в общем если мой клиент будет все все время спрашивать бд на запрос "дай мне те сообщения которые я не виде" - это будет нормально?? и грузить сильно будет? или так и делается?

да, историю 100% надо хранить. даже скажу больше её надо пихнуть на сайт.
PM MAIL   Вверх
gambit
Дата 26.10.2010, 16:36 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: 3
Всего: 40



Цитата(DenWPF @  25.10.2010,  22:41 Найти цитируемый пост)
Это обязательно сервер - клиент.

технически нет, но по логике да.
 
Цитата(DenWPF @  25.10.2010,  22:41 Найти цитируемый пост)
или можно черзе БД? к примеру MySql? 

технически можно, но на реальном проекте убьют сразу

Цитата(DenWPF @  26.10.2010,  16:24 Найти цитируемый пост)
если мой клиент будет все все время спрашивать бд на запрос "дай мне те сообщения которые я не виде" - это будет нормально?? и грузить сильно будет? или так и делается?

см. выше
PM MAIL ICQ Skype   Вверх
DenWPF
Дата 26.10.2010, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



так как это сделать на реально проекте? использовать сокеты?
PM MAIL   Вверх
Экскалупатор
Дата 26.10.2010, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



Цитата(DenWPF @  26.10.2010,  15:24 Найти цитируемый пост)
если мой клиент будет все все время спрашивать бд на запрос "дай мне те сообщения которые я не виде" - это будет нормально??

я думаю не очень нормально, лучше наоборот. как мне кажется клиент должен просто периодически проверять соединение с сервером а остальное время ждать подключение к себе от сервера. но это имхо, потому как я никогда чатов не писал. просто думаю что если пользователей будет много то они за DDOS`ят сервер к чертям. 
PM MAIL ICQ   Вверх
DenWPF
Дата 26.10.2010, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



спасибо, жду ответа от того кто имел дело с этим...

Экскалупатор, я вообще так же думаю, но вот как это сделать не знаю.


технология WPF
PM MAIL   Вверх
wester
Дата 26.10.2010, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 3
Всего: 13



DenWPF
зачем ждать ? просто достаточно подумать,
мои соображения (после 5 часов отладки в голове творится ужас, но все же)

к серверу коннектится два клиента, 
один клиент отправляет сообщение на сервер. Сервер записывает его в БД, отправляет получателю , и ставит этому сообщению флаг "отправлено/доставлено получателю"
и вот так в цикле.
PM MAIL   Вверх
DenWPF
Дата 26.10.2010, 22:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



это ты не про чат, а про личную переписку. это легко решается чезрез простое mysql бд и запрос к ней..

PM MAIL   Вверх
wester
Дата 26.10.2010, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 675
Регистрация: 27.2.2009

Репутация: 3
Всего: 13



DenWPF
эмм... а по твоему чат это должно быть что - то большое и неповоротливое ?
и вообще http://tinyurl.com/34pjkm8
PM MAIL   Вверх
Экскалупатор
Дата 26.10.2010, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1746
Регистрация: 1.4.2009
Где: г. Минск

Репутация: 5
Всего: 24



что то я не пойму в чем у тебя возникли сложности. с архитектурой приложения? чем не подходит WCF? и по верх него все это запускать? как мне кажется должно быть как то так:
клиент:
соединяется с сервером и сообщает ему свои координаты для обратной связи(ну или сервер их сам узнает и сохраняет). можно добавить сообщения серверу об изменении своего статуса(отошел, не доступен и пр.) и ждет сообщения от сервера. время от времени подтверждает свой статус и проверяет доступность соединения с сервером. ну собсна получает и отправляет сообщения. наверное было бы не плохо что бы отправлял серверу подтверждение что сообщение принято, дабы сервер мог отметить у себя что все "ок".
сервер:
ждет подключения клиентов. сохраняет данные о них, для того что бы можно было обратиться к клиенту(ip/port). при получении сообщения отправляет его адресату и записывает лог, при получении ответа клиента, что принято сообщение, отмечает что отправлено. при подключении клиента должен проверить нет ли неотправленных сообщений, если есть то отправить. периодически проверять клиентов, что они все тут и не отпал ли кто из них без его ведома(можно по тайм ауту отбрасывать). данные о подключении хранить в виде: логин, адрес.
когда получает сообщение то сопоставлять по логину адрес и отправлять адресату.



ну как то так я себе представляю этот процесс. может чего не учел, так это только набросок, но мысль вроде ясна.

Добавлено через 4 минуты и 43 секунды
наличие БД, конечно все усложняет. как мне кажется чаты(аськи и иже с ними) логи не хранят на сервере. хранят у клиентов. но если у тебя стоит задача создать такой чат... то тут никуда не денешься, бери и прикручивай БД. это в любом случае будет лучше текстовых файлов. если учесть что работать все это будет по сети то думаю что задержку в 1-2 сек. никто не заметит. зато получишь удобное хранилище логов, с которым потом же удобно будет работать(тебе же для чего то эти логи нужны...).
PM MAIL ICQ   Вверх
DenWPF
Дата 26.10.2010, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



вот и трабл WCF - не работал так нам его и не дали=((
а серверами я работал только в java. 
и то сервер делал у себя на машине, а клиент у себя на машине)))

я не понимаю как создать свой сервер и работать сним =(
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1020 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.