Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как из as3 обращаться RED5? (http://www.flasher.ru/forum/showthread.php?t=161544)

Azo 25.07.2011 15:37

Как из as3 обращаться RED5?
 
Здравствуйте.

Мне нужно написать игру и понадобился сервер
для обмена данными между пользователями...
Поставил RED5. Вроде все работает (т.к. примеры demo работают)

//----------------

Осталось понять как же из AS3 обращаться к к серверу RED5???
ну понятно что надо обращаться на порт :5080 , а что и как отправлять?

//-----------

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


//----------------------

Я с серверной стороной не работал раньше...
Игры делал по средствам php+mysql+flash и игры то были не сложные ...
если надо было делал таймер на проверку "не вызвали ли меня на бой" из php
Но сейчас понадобился сервер...
Может тут тоже как то через mysql базу работать надо или в red5 свои базы?

Tr1te 25.07.2011 15:47

Напиши на чем нить сервак: cpp c# java, да на чем угодно.
Работать так же как ты это делал раньше, только вместо пхп будет какой нить другой язык. На пхп тоже можно, но я очень не советую.

andrew911 25.07.2011 15:48

http://black-zorro.com/mediawiki/A_P...h_Red5._Part_1
Там цикл статей

Tr1te
Red5 это и есть сервер

Azo 25.07.2011 15:52

Цитата:

Сообщение от Tr1te (Сообщение 1014491)
Напиши на чем нить сервак: cpp c# java, да на чем угодно.
Работать так же как ты это делал раньше, только вместо пхп будет какой нить другой язык. На пхп тоже можно, но я очень не советую.

Я плохо понимаю как ... там нужно знать как подключать порты и т.д. Был бы хоть какой маленький прмимер, например отправки сообщения пользователю - я бы сразу вкурил

Tr1te 25.07.2011 15:56

Не слушайте меня, слушайте andrew911, я перепутал с красной шапкой. А в вашем случае пример, все таки придеться установить java.

Azo 25.07.2011 16:10

java на сервере установлен. Без него не установить red5 на vds

КорДум 25.07.2011 16:48

http://www.flasher.ru/forum/blog.php?b=407
Все уже продуманно, RPC. Но что нужно конкретно в серверной части писать и как там оно, это не на этот форум.

Azo 25.07.2011 17:40

нашел код сервера на java ... это и есть наверное так называемый "Демон"

У меня есть код
но я не знаю как его залить... в каком расширении файл сделать? через ftp? в какую дирректорию?
Может его как то специально нужно устанавливать чтобы под него выделялся определенный порт?


Код AS3:

import java.io.*;
import java.net.*;
 
public class Server {
 
  public static void main(String[] args) throws IOException {
    System.out.println("Welcome to Server side");
    BufferedReader in = null;
    PrintWriter    out= null;
 
    ServerSocket servers = null;
    Socket      fromclient = null;
 
    // create server socket
    try {
      servers = new ServerSocket(4444);
    } catch (IOException e) {
      System.out.println("Couldnt listen to port 4444");
      System.exit(-1);
    }
 
    try {
      System.out.print("Waiting for a client...");
      fromclient= servers.accept();
      System.out.println("Client connected");
    } catch (IOException e) {
      System.out.println("Cant accept");
      System.exit(-1);
    }
 
    in  = new BufferedReader(new
    InputStreamReader(fromclient.getInputStream()));
    out = new PrintWriter(fromclient.getOutputStream(),true);
    String        input,output;
 
    System.out.println("Wait for messages");
    while ((input = in.readLine()) != null) {
    if (input.equalsIgnoreCase("exit")) break;
    out.println("S ::: "+input);
    System.out.println(input);
    }
    out.close();
    in.close();
    fromclient.close();
    servers.close();
  }
}



Ну и код AS3 есть.. С ним пока все понятно

Код AS3:

package;
 
import flash.system.Security;
import flash.net.XMLSocket;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;
import flash.events.DataEvent;
 
class TrySocket
{
        // properties
        private var socket:            XMLSocket;
 
        // constructor
        public function new()
        {
                try
                {
                        Security.loadPolicyFile('xmlsocket://АДРЕС_МОЕГО_СЕРВЕРА_ИЛИ_САЙТА:4444');
 
                        trace('create socket');
                        this.socket = new XMLSocket('АДРЕС_МОЕГО_СЕРВЕРА_ИЛИ_САЙТА', 4444);
                        this.socket.addEventListener(Event.CONNECT, OnConnect);
                        this.socket.addEventListener(DataEvent.DATA, OnData);
                        this.socket.addEventListener(Event.CLOSE, OnClose);
                        this.socket.addEventListener(IOErrorEvent.IO_ERROR, OnIOError);
                        this.socket.addEventListener(SecurityErrorEvent.SECURITY_ERROR, OnSecurityError);
                }
                catch(e:Dynamic)
                {
                        trace('sluchilos strashnoe!');
                        trace(e.toString());
                }
        }
 
        static public function main():Void
        {
                Security.loadPolicyFile('xmlsocket://АДРЕС_МОЕГО_СЕРВЕРА_ИЛИ_САЙТА:4444');
                new TrySocket();
        }
 
        private function OnConnect(event:Event):Void
        {
                trace('Connected!');
                trace('send some data');
                this.socket.send('Hello\n');
                this.socket.send('How do you do?\n');
                this.socket.send('It`s work!!!\n');
        }
 
        private function OnData(event:DataEvent):Void
        {
                trace('OnData: ' + event.data);
        }
 
        private function OnClose(event:Event):Void
        {
            trace('connection closed');
        }
 
        private function OnIOError(event:IOErrorEvent):Void
        {
                trace('OnIOError');
                trace(event.toString());
        }
 
        private function OnSecurityError(event:SecurityErrorEvent):Void
        {
                trace('OnSecurityError');
                trace(event.toString());
        }
 
        public function toString():String { return 'TrySocket'; }             
}


КорДум 25.07.2011 17:44

Цитата:

в каком расширении файл сделать?
Если под винду, то exe, просто запускаете и пусть висит в процессах. Этот порт должен быть открыт в файерволе.

Kidd002 25.07.2011 17:48

То что ты нашел - это сокет сервер. Red5 - это RTMP-сервер.
Советую все-таки пройти по ссылке которую вам дали: http://black-zorro.com/mediawiki/A_P...h_Red5._Part_1
Основы Red5 там есть. В том числе и подключение к нему.


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

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