Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > Общие вопросы Web
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.01.2014, 13:40   #1
Brooto
Новичок
Джуниор
 
Регистрация: 13.01.2014
Сообщений: 2
По умолчанию Реализация чата при высоком онлайн

Всем привет! Хочу сделать сайт, в котором планирую встроить функционал общения людей друг с другом, к примеру такой, как на сайтах знакомств ил в соц. сетях. Меня интересует такой вопрос - если предположим на сайте несколько сот или тысяч пользователей, то как организовывать между ними общение (чат) так, чтобы была минимальная нагрузка на сервер. Т.е. вот как на сайтах знакомств предположим, там может одновременно общаться скажем 1000 человек, соответственно это 500 отдельных чатов на 2 человека, если делать их с помощью ajax например или jquery, то это какая же нагрузка будет... Что в таких проектах используется. C++ или Java демоны и сокеты? Просто хочется изначально сделать все по уму, даже если и не будет высокого онлайна на сайте. Прошу прощения за сумбурность.
Brooto вне форума Ответить с цитированием
Старый 13.01.2014, 15:01   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

веб-сокеты (и таймеры для недобраузеров) && асинхронный сервер (напр. node.js, mojolicious, Amon2 etc)
хотя 1к пользователей не такая уж и большая нагрузка
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 13.01.2014, 15:38   #3
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Веб-сокеты нужны для моментальных сообщений.

Если возможна задержка в 2 секунды, то достаточно php+MySQL (unix-сокеты), реализация через Ajax.
Виталий Желтяков вне форума Ответить с цитированием
Старый 14.01.2014, 14:13   #4
Mortimoro
Форумчанин
 
Регистрация: 03.12.2010
Сообщений: 334
По умолчанию

Чтобы нагрузка была небольшая, достаточно просто сделать чат рагульным и неудобным - тогда никто ним не будет пользоваться и нагрузка будет минимальная

В инете полно исходников для чата, есть весьма удачные решение, которые нужно немного допилить. При большом числе сообщений, чтоб человек успевал читать, нужно разделять чаты на отдельные и обновлять не чаще, чем раз в 5-10 секунд. Кроме того, пользователю надо скармливать не всю историю, а только ту часть, которую он еще не получил.

При онлайне в 20-50 тысяч пользователей нагрузка будет вполне приемлемая, а при нормальном железе и канале, это далеко не предел. Если нагрузка вырастет серьезно, тогда нужно будет вводить систему распределенных серверов.
Mortimoro вне форума Ответить с цитированием
Старый 14.01.2014, 19:21   #5
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 823
По умолчанию

Если выберите ajax вместо websocket, то круто было бы сделать long polling запросы.
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Старый 14.01.2014, 22:26   #6
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
Сообщение от Fenex Посмотреть сообщение
Если выберите ajax вместо websocket, то круто было бы сделать long polling запросы.
long polling с сессиями вызывает кучу проблем с зависанием скриптов. Чат как раз требует использование сессий, то есть использование long polling нежелательно.
Виталий Желтяков вне форума Ответить с цитированием
Старый 15.01.2014, 11:07   #7
Brooto
Новичок
Джуниор
 
Регистрация: 13.01.2014
Сообщений: 2
По умолчанию

Что-то я сомневаюсь, что на сервисах знакомств чаты сделаны на ajax. Дело в том, что в свое время я делал сервис чатов на ajax, у меня был свой сервер, так вот, сервак от нагрузки падал при общем онлайн 150 человек в 10 чатах...
Brooto вне форума Ответить с цитированием
Старый 15.01.2014, 12:39   #8
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Цитата:
Сообщение от Brooto Посмотреть сообщение
Что-то я сомневаюсь, что на сервисах знакомств чаты сделаны на ajax. Дело в том, что в свое время я делал сервис чатов на ajax, у меня был свой сервер, так вот, сервак от нагрузки падал при общем онлайн 150 человек в 10 чатах...
И при чём тут AJAX? Скорее всего у вас были проблемы с базой
Виталий Желтяков вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация многопоточного чата с возможностью передачи файлов по сети darek13 Работа с сетью в Delphi 34 22.02.2013 16:00
Переадресация сообщений чата Онлайн - игры WolfgangAmadeus Фриланс 0 20.09.2012 12:01
Реализация интернет чата. JohnLemon Помощь студентам 1 22.10.2011 22:23
Реализация чата Balanar Помощь студентам 1 05.07.2011 05:21