![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Sun_ok |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 4.9.2006 Репутация: нет Всего: нет |
Всем привет.
Нужен чать с одной особенностью, в разговоре принимают участие 2 человека и один из них видет всё, что происходит у 2ого в строке ввода. нужны идеи как это сделать, через бд, или буфер файла , или ещё както ? , естественно чтобы не сильно грузило сервер, Идея при каждом нажатии клавишы отправлять запрос в базу, записывать, чиать мне покозалось слишком ресурсоёмкой. Как решить данную задачу ? |
|||
|
||||
WolfON |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 604 Регистрация: 19.7.2004 Репутация: 1 Всего: 8 |
передавать эти данные не через сервер, а непосредественно другому клиенту
допустим с помощью flash |
|||
|
||||
gta4kv |
|
|||
![]() Walking around mad. ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1868 Регистрация: 25.7.2006 Репутация: нет Всего: 91 |
Ну или AJAX, придеться правда при нажатие на каждую кнопку отсылать запрос серверу. изврат. а у второго пользователя каждую секунду обновлять данные. короче фтоку ajax, делайте на flash)
|
|||
|
||||
Sun_ok |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 4.9.2006 Репутация: нет Всего: нет |
вот вот, я так же думаю, в топку аякс
![]() вот только можно ли обеспечить связь flash - flash, если кто чисто случайно знает подскажите или кинте линк ! Пасибо ! |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
во-первых, как вы себе это видите - прямое подключение-то?
если у обоих клиентов - прямой("белый") IP, то ещё куда ни шло - запомнили IP друг-друга и перебрасываем информацию. А если "серый" IP? Если маршрутизация? То что - просить пользователей настраивать NAT? Единственный стаблильный вариант - через сервер, как промежуточное звено с постоянным известным адресом. Не обязательно - AJAX, можно и flash с бинарным протоколом обмена вместо HTTP. в любом случае, будет ли соблюдено условие - напрямую зависит от количества пользователей, но потенциально, как мне кажется, лучше отказаться от подобной "фичи" в целях сохранности здоровья сервера. |
|||
|
||||
Sun_ok |
|
|||
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 4.9.2006 Репутация: нет Всего: нет |
В том и дело, что это не "фича", а задача такая. Поэтому, я и спрашиваю, чтобы сервер не сошел сума, я так понял лучший вариант это создать сокет сервер на пхп и через него перекидоватся инфой с помощью флэша ? А если логинется и сохранять параметры потом 2ой человек залогиневшись берёт данные 1ого а 1й второго , флэш настраивается и соединяется возможно ли так ? просто, я не сильно разбераюсь в сетевых тонкостях, всёравно у человека должны быть точные координаты чтобы сервер мог ответить на запрос ! вот эти кординаты при входе уточнять и передавть друг другу для настройки соединения ? |
|||
|
||||
GeneralElectric |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: нет Всего: 16 |
координаты чего?
|
|||
|
||||
Glip |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 473 Регистрация: 30.12.2006 Репутация: нет Всего: 18 |
может быть имеет смысл сначала заполнить этот пробел? |
|||
|
||||
Input |
|
|||
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 13.3.2008 Репутация: нет Всего: нет |
поддерживаю Socket+Flash - лучшее решение для данной задачи
Это сообщение отредактировал(а) Input - 14.3.2008, 13:32 |
|||
|
||||
N0dwis |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 238 Регистрация: 18.9.2007 Где: Луганск Репутация: 1 Всего: 4 |
А в какой среде все это дело будет работать? Ну в смысле локалка или интернет? Если второе, то, думаю тормоза будут дикие в любом случае - скорость-то плавает всегда.
Можно еще вместо Flash Java апплеты попробовать, но проблема скорости все равно остается. Но для чего это нужно? |
|||
|
||||
sTa1kEr |
|
||||||||
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 11 Всего: 146 |
Вероятно, Flash тут действительно лучше подходит, но и на Ajax можно не хуже сделать (может даже и лучше).
Не обязательно отправлять каждый символ сразу. Можно записывать последовательность действий и интервалы между ними в буфер, а сбрасывать буфер серверу, к примеру, каждую секунду или еще реже.
С чего будут дикие тормоза? По сути это классический чат на Ajax, только будет передаваться не сообщение целиком, а последовательность действий пользователя и, соответственно, воспроизводится у удаленного пользователя в той же последовательности (а так же возможно с теми же интервалами). А если еще у сервера будет включен KeepAlive, то передача данных по 100 байт в секунду никак не приведет к бОльшим тормозам, чем классический чат на Ajax. С серверным скриптом вообще не вижу никаких проблем. requestor.php - получает действия клиента в виде JSON строки и добавляет ее в очередь для соответствующего клиента (в худшем случае записывает в файл/sqlite, в лучшем в shared memory). responser.php - отправляет клиенту всю очередь с действиями на выполнение и очищает ее. Все. Написал не большой примерчик (без серверной части, с использованием jQuery) index.html
superchat.js
|
||||||||
|
|||||||||
nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: нет Всего: 43 |
накакого http для сервера чата.
|
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |