![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Aug 2009
Сообщений: 3
|
Добрый день
Есть флэш игра(клиент), которая должна обращаться к ряду серверов за данными. Всё в общем то готово, за исключением самой работы с серверами. Клиент должен работать не мудрено. Подключается к удалённому серверу, отправляет данные о себе, получает данные о других клиентах. Подскажите пожалуйста как это можно реализовать. Какие приложения, знание какого языка(кроме as), и вообще как это соединение производится, возможно ли это сделать при помощи таких функций как LoadVars и XML? Можно ли производить соединение двух компьютеров(одного как сервер, другого как клиент) или сервер должен иметь домен. Заранее простите за глупые вопросы, просто в этой теме вообще ничего не знаю. Последний раз редактировалось Flash может всё; 21.08.2009 в 13:36. |
|
|||||
|
Регистрация: Jan 2009
Сообщений: 1,651
|
это значит, что нифига ничего не готово.
У обычного приложения и многопользовательского совсем разная архитектура, разный подход. Значит по пунктам: Цитата:
Цитата:
Как вариант, есть платный Fox server где можно писать серверную часть на as3. И есть гигант Flash media server, где можно писать серверные плуги хоть на as3, Хоть на си(цена пугает - 4500$ в максимальной комплектации). Опять же нужен выделенный сервер, чтобы все это крутилось. Если нагрузка по пользователям ожидается небольшой (300-400 юзеров в пике) и задержка в ответе на секунду-две неважна, то можно обойтись без сокет-сервера. Вполне можно обойтись и LoadVars+XML в флеш-клиенте и php+mysql на сервере. В любом случае, чтобы разобраться во всем этом человеку без опыта понадобится не один месяц. |
|
|||||
|
loading 50%
|
|
|
|||||
|
Регистрация: Sep 2009
Сообщений: 2
|
В итоге:
Во флеше есть чудо штука: XMLSocket, Socket [как юзать и где лежит - погуглите] Сервер для игры: любой язык программирования (исключим только архаику). Рекомендация: Пишите сервер на Java! Вам понадобится: Eclipce среда разработки (как начать с ним работать тоже Гуглим) Клиент-сервер Java (Ctrl+C только то, что касается сервера )Флеш: обязатльно читаем про И для теста: import flash.net.*; var xsock:XMLSocket = new XMLSocket(); //Новый сокет xsock.addEventListener(Event.CONNECT, Fxmlsocket); // Слушаем событие сокета Подключение xsock.addEventListener(Event.CLOSE, Fxmlsocket); // Слушаем событие сокета Отключение xsock.addEventListener(IOErrorEvent.IO_ERROR, Fxmlsocket); // Слушаем событие сокета Нипадключаиццо! function Fxmlsocket(Event):void{ // Функция реакции на события отключение / подключение switch(Event.type){ case 'ioError': trace ("error: "+IOErrorEvent.IO_ERROR); // Выводит в аутпут сообщение error break; case 'connect': trace ("connect"); // Выводит в аутпут сообщение connect break; case 'close': trace ("close"); // Выводит в аутпут сообщение close break; } } xsock.addEventListener(DataEvent.DATA, datainc); //Слушаем событие отправки данных от сервера function datainc(event:DataEvent):void { // реакция на прием данных trace(event.data); //вывод сообщения } xsock.connect("192.168.0.1",8080); // Подключение к серверу по порту 8080 Security.loadPolicyFile("xmlsocket://192.168.0.1"); // файл безопасности xsock.send("testing ... "); // Отправляем серверу строку //xsock.close(); если нужно прервать соединение В общем случае, как пример - (ЭХО)Сервер возвращает сообщение клиенту. На то чтобы разобраться с сетевым программированием (на начальном этапе игростроительной каръеры) у меня ушло не больше недели (ну тут как кому природа дала). Дерзайте! Последний раз редактировалось mypaxa; 02.09.2009 в 15:11. |
|
|||||
|
сначало разобраться с простым соединением между клиентом flash и сервером, потом выдумать протокол общения, и строить свою игру! А вы сначало написали игру и говарите клиент готов! Неааа придётся ваш клиент полностью перетряхивать под клиент-сервер!!!
|
|
|||||
|
Регистрация: Aug 2009
Сообщений: 3
|
Здравствуйте, вы наверное уже про меня сто раз забыли, но я вернулся.
Спасибо всем кто отвечал, ваши материалы толкнули меня в нужном направлении. В общем я потихоньку своими силами осваиваю серверные технологии. Сервер и клиент начали обмениваться данными, но не в реальном времени =( То есть я запускаю сокет сервер, и клиент, клиент клянётся что отослал данные серверу, а сервер пожимает плечами. Как только я закрываю клиент, сервер принимает всё что клиент отсылал одной большой кучей. При этом с сервера данные клиент принимает успешно по мере их отправки. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
flush нужно вызывать.
|
|
|||||
|
Регистрация: Aug 2009
Сообщений: 3
|
Эмм... Можете больше не отвечать, я нашел в чём была проблема - я не завершал данные символом перехода на новую строку \n
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|