Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 04.11.2010, 03:08
deman455 вне форума Посмотреть профиль Отправить личное сообщение для deman455 Найти все сообщения от deman455
  № 1  
Ответить с цитированием
deman455
[+1 25.04.11]

Регистрация: Nov 2009
Сообщений: 481
Отправить сообщение для deman455 с помощью ICQ
По умолчанию Правильный чат

Вот возник вопрос. Я сделал чат, который работает по такой схеме (с MySql):

1. Каждую секунду идет запрос на сервер, который возвращает ответ, несколько последних сообщений которых нету в чате у пользователя.
2. При создании сообщения "INSERT" - ну, логично

Ну вот представим, сидит в чате 5 человек и общаются. Это примерно и есть 1 INSERT в секунду, а то и больше. На сколько это грузит сервер? И как вообще правильно реализуются флеш чаты на MySql? Долго искал в гугле, находил только php чатец в txt логом, и без флеша само собой, поэтому решил сделать свой. Но мне кажется что это не правильно... А как правильно?

Старый 04.11.2010, 05:24
AzagThoth вне форума Посмотреть профиль Отправить личное сообщение для AzagThoth Найти все сообщения от AzagThoth
  № 2  
Ответить с цитированием
AzagThoth
 
Аватар для AzagThoth

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Смею предположить что тут зависит от нагрузки всё. Допустим если представить мега-чато сервер на котором общаются миллионы людей в разных "комнатах". То тут конечно txt файликом + узким инет каналом не обойтись. А на пятерых наверное хватит) Если рассчитано на ацкие нагрузки - то тогда наверное правильно писать демон-программу которая будет крутиться на сервере и делать дела. Как правило это делют на С или на Java. Если интересно, то можете про сокет-серверы почитать.
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

Старый 04.11.2010, 11:35
leofit вне форума Посмотреть профиль Отправить личное сообщение для leofit Найти все сообщения от leofit
  № 3  
Ответить с цитированием
leofit
 
Аватар для leofit

Регистрация: Dec 2009
Сообщений: 428
Более правильно при данном подходе делать некий массив для каждой комнаты, размерностью скажем 30 сообщений.
Когда пользователь пишет что то в чат, в массив добавляется запись.
Когда пользователь хочет получить запись, получает сообщения из массива.
Когда кол-во записей достигает 30, 20 сообщений массива одним запросом добавляются в базу, и удаляются из массива.
Соответственно снижается нагрузка на базу.

Более правильно было бы сделать ту же схему, при которой 20 записей дописываются в файл, без базы. А на сервере ходит скрипт по крону, который разбирает файл и складывает в базу, раз в 5 мин например.

И еще для экономии трафика и снижения нагрузки желательно, что бы не клиенты теребили сервер раз в секунду, а сервер дергал клиентов только из определенной комнаты, и только когда добавилась новая запись
__________________
Скажи мне кто твой друг и я скажу тебе кто твой друг

Создать новую тему Ответ Часовой пояс GMT +4, время: 03:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 03:50.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.