Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   чат с персонажами (http://www.flasher.ru/forum/showthread.php?t=135063)

AlexDesinger 14.01.2010 23:48

чат с персонажами
 
Всем привет, я изучаю flash as3 где-то пол года, опыта мало, но результаты какие-никакие есть. У меня есть задача создать приложение вконтакте чат с персонажами.
Ребят подскажите, пожалуйста алгоритм и общий подход.

Для начала я создал:
Класс документа, подгружающий в себя все классы, образующие интерфейс. Создал класс UserData, который в будущем будет обращаться к данным пользователя, загрузившего приложение и пр. классы, создающие локацию и персонажа в ней. Но дальше не могу продвинуться, не могу понять алгоритм самого чата -
каким образом принимать сообщения от пользователей? Каждый раз обращаться скажем к текстовому файлу, в который будут писаться сообщения? Или как? Каким образом обнаружить что еще какой-то пользователь поставил себе приложение и еще и вошел в чат? Т.е. я просто должен каждый раз посылать запросы и т.е. каждый пользователь будет запрашивать определенный файл? И как следить за этим файлом? Он же раздуется до безобразия? Как мне определять что нужно удалять старые сообщения и пр. вобщем буду благодарен за любую такого рода информацию по общим принципам.

И да - если я задаю такие вопросы- стоит ли браться за это или у меня слишком мало знаний чтобы тратить свое время на этот чат?

udaaff 15.01.2010 00:02

Есть пример чата http://chat.vkontakte.ru/, если не видели.

AlexDesinger 15.01.2010 00:06

udaaff, да спасибо, видел, сейчас его параллельно изучаю, пока что вижу что пользователи отображаются посредством какого то запроса через определенное время, но что и как пока что непонятно.

udaaff 15.01.2010 12:39

Цитата:

Сообщение от AlexDesinger (Сообщение 879221)
udaaff, да спасибо, видел, сейчас его параллельно изучаю, пока что вижу что пользователи отображаются посредством какого то запроса через определенное время, но что и как пока что непонятно.

Код этого чата не смотрел, но видно, что весь чат строится на двух post запросах getMessages и sendMessage. Комната = session. Список пользователей (скорее всего) в той или иной комнате строится на основании анализа очереди сообщений.
Полноценный чат там невозможно реализовать.

AlexDesinger 15.01.2010 14:28

Цитата:

Полноценный чат там невозможно реализовать.
аааа вот оно в чем дело. Т.е. выдумывать и симулировать так и так?
Я вот тут подумал, а что если делать так:
Создаем файлик userOnline.txt, например отправляем в него id пользователя как только его приложение-чат готово(все загрузилось и построилось)и естесственно одновременно загружаем от туда всех зеров, что подключились до него. Загружать этот файлик, скажем каждые 5 сек, для проверки или каждый раз когда адресуется личное сообщение? Вот такой алгоритм как думаете не сильно загрузит сервак и пр.? Нужно же еще примерно таким же способом считывать сообщения, а так же после обнаружения юзера - подгружать инфу о нем(местоположение вид перса), некоторую постоянно, некоторую при запросе.

да и еще чего то не пойму - мне файлы данных дадут загрузить на их сервер рядом с флэхой или все это удаленно надо делать а в контакте грузить тока флэху?

udaaff 15.01.2010 14:55

Цитата:

аааа вот оно в чем дело. Т.е. выдумывать и симулировать так и так?
Полноценный чат, я имею в виду, полностью клиентский (без использования своих ресурсов).

Ну а по поводу, вообще, реализации чата, думаю, что лучше через сокет сервер все это дело организовывать.

Цитата:

да и еще чего то не пойму - мне файлы данных дадут загрузить на их сервер рядом с флэхой или все это удаленно надо делать а в контакте грузить тока флэху?
Загрузить то можно, но только рид онли с ними работать можно будет.

AlexDesinger 15.01.2010 19:16

Цитата:

Ну а по поводу, вообще, реализации чата, думаю, что лучше через сокет сервер все это дело организовывать.
покапавшись немного в своих пыльных учебниках по macromedia flash mx нашел интересную книжку - "Популярные web приложения на flash mx" где очень все хорошо и подробно объясняется по поводу on-line игр и characters chat на flash.
Теперь постепенно приходит понимание о принципе организации онлайн проектов - классная книжка, кому интересно могу прислать на почту, формат *.pdf

Ну тк вот, в этой книжке рекомендуется установить т.н. ElectroServer на локальную машину(видимо для отладки) и на сервер, а для подключения к серверу использовать два файлика *.as. Но самое потрясающее и интересное, это то что этот сервер заточен специально для таких проектов и имеет в себе уже достаточно много стандартных функций.

Все это очень интересно и круто, но теперь я почти уверен что практически нереализуемо под приложение вконтакте, т.к. подозреваю что никакой сервер мне туда установить никто не даст.

Обидно....

udaaff 15.01.2010 19:29

Цитата:

Все это очень интересно и круто, но теперь я почти уверен что практически нереализуемо под приложение вконтакте, т.к. подозреваю что никакой сервер мне туда установить никто не даст.
Ну туда кончено никто не даст :). Кроме того ElectroServer еще и стоит немало. Смотрите в сторону Red 5 + VPS. На Red 5 есть даже пример реализации простенького чата.

AlexDesinger 15.01.2010 20:26

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

udaaff 15.01.2010 20:38

Пользователь открывает приложение. Приложение отправляет post запрос на Вконтакт с параметрами { method: getMessages, session: [viewer_id] }.
Т.е. приложение получает историю сообщений из определенной комнаты, с номером равным id текущего пользователя. На основании ответа определяет список юзеров присутствующих в чате. Я предполагаю, если время сообщения пользователя меньше текущего времени на определенное количество, то пользователь считается покинувшим чат. Иначе присутствует.
Если пользователь входит в какую-то комнату (session), то приложение шлет запрос { method: sendMessage, session: [id комнаты], message: %%join }.
Далее клиенты опрашивают Вконтакт через getMessages и если встречают %%join, то добавляют юзера в список пользователей в комнате.
Скорее всего так, я думаю :)


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

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