그동안 채팅하면 꼭 자바서버를 거쳤었어야했죠.

그러나 이제 Stratus라는 Flash Flatform의 P2P기술을 이용해서

Flash만으로 P2P 통신이 가능해졌습니다.

제가 함께 공개한 Stratus 라이브러리를 이용해서 채팅 라이브러리를 사용하는 방법을 올리겠습니다.

소스와 Stratus 예제는 이곳 에서 다운받으시길 바랍니다.

공개 라이센스이므로 저 말고는(히히) 상업적으로 사용할 수 없습니답!!

기업에서 사용하시려면 저에게 문의하시거나 그냥 고대로 보고 똑같이 만드세요 :D



우선 실제 개발에 앞서서 해야할 두가지가 있습니다.

바로 developer key와 broker 파일을 설정해줘야합니다.

자 따라해봅시다~


Developer Key 받기



Broker 파일 설정하기



자 이렇게 준비가 끝났으면 바로 ChatSample을 돌려볼 수 있습니다.


더보기




테스트해보시려면 이렇게 만들어진 swf를 여러개 띄워보면 됩니다.

하나는 Flash에서 띄우고 하나는 탐색기에서 하나 실행시키거나

아니면 코드를 좀 더 추가해서 TextField를 하나 추가해서 출력되게 해보세요.




API Reference (ASDoc) : http://as3.kr/stratus/asdoc/





바로 얼마전에 올린 Yaggo Chat 이 바로 이 똑같은 Chat API를 이용해서 만든 채팅 애플리케이션입니다.

버그가 있을지 모르는데

버그나 오류가 있으면 댓글로 알려주세요 바로바로 업데이트하겠습니다.

_(_ _)_

저작자 표시 비영리 동일 조건 변경 허락
신고
  1. Favicon of http://diebuster.com hika 2009.08.11 11:36 신고

    asdoc example만들기가 도움이 되었군 ^^;
    짜피 통신이 무작위로 이뤄지는게 아니라면 프로토콜이란 객체를 만들어서 사용자가 통신 규격을 정의하면 내부에서 {}에 프로토콜에 맞는 메쏘드를 쭉 생성해주는 식이면 더 좋을 것 같아. peerID를 관리하는 php가 있는 이상 logging옵션을 켜면 php에게도 보고해서 로깅도 지원해주면 좋을거 같고.
    만약 그렇게 되면 방화벽에 막힌 유저는 php브릿지로 URLLoader를 가상 Status로 들어와서 같이 놀 수 있을것도 같고 ㅎㅎ 화이팅!

    • Favicon of http://wooyaggo.tistory.com 우야꼬  2009.08.12 01:49 신고

      하아... 무슨 말씀인지 모르겠어요 형님 T^T

    • Favicon of http://diebuster.com hika 2009.08.12 12:15 신고

      통신은 서로 먼저 약속하잖아. 야꼬의 샘플도 보면 프로토콜이 정의되어있어. 요렇게 말이지.

      var client: Object = {};
      client.sayHello = sayHello;

      이 의미는 야꼬가 통신할때 sayHello라는 약속된 방식으로 통신을 하겠다는 뜻이야. 정형화 해보면 아래처럼 되지.

      메세지 : sayHello
      인자 :
      who - 누구인지를 나타내는 문자열,
      msg - 전달할 인사말

      이걸 프로토콜이라고 부르면 사실 통신상에서 이뤄질 모든것은 프로토콜로 사전에 정의가 가능하지.

      var protocol:Cprotocol = new Cprotocol;
      protocol.add( {msg:'sayHello', arguments:['who:String','msg:String']} );
      protocol.add( 또다른 프로토콜..);
      ..
      stratus.protocol = protocol;

      이렇게 하면 좋을것 같다는거였어 ^^; 만약 그렇다면 나중에 protocol도 시리얼라이즈 할테고 다음과 같이 쓰겠지.

      protocol.load( 채팅용 프로토콜 );
      stratus.protocol = protocol;

      logging은 별거 아니고 니가 만든 call이나 callTo를 사용할 때, 다음의 줄을 같이 넣어주면 되는 정도.
      if( isLogging ){
      this.logger.send($method, $args);
      }
      이러면 call할때마다 php에게 send도 하니까 서버에 저장도 되잖아. 만약 그렇다면 방화벽에 걸려서 통신이 안되는 녀석들은 인터벌로 php에게 물어보면 php가 가져가지 않은 모든 로깅메세지를 전달해주는 식으로 참여시켜주는거지.

  2. Favicon of http://asnike.com 니케 2009.08.11 16:49 신고

    ㅋㅋ 형 드디어 정복을~ 수고하셨어요~!

  3. 윤부 2009.08.11 16:51 신고

    이제 편히 쉬세요 :-D

  4. 쫑쫑종 2009.08.11 16:51 신고

    수고하셨어요 ㅋ ~~~

  5. 파퓨표 2009.08.11 17:07 신고

    ㅋㅋ 수고하셨어여ㅎㅎ
    멋져멋져 ㅋㅋ

  6. 깐츄 2009.08.11 22:54 신고

    우야꼬님 근데요.. 저는 왜 안되는걸까요??;;
    chatEvent<-요건 머죠? 못보던거라서요...
    paran7568@nave.com으로 더 자세히 알려주시면 안되요 ? ㅠ_ㅠ

    • Favicon of http://wooyaggo.tistory.com 우야꼬  2009.08.12 01:59 신고

      asdoc에 예제까지 해놨는데 마냥 안된다고 하시면 -_ㅜ
      그리고 ChatEvent는 당연히 못보던거겠죠 ㅠ.ㅠ
      제가 만든건데...

  7. 메타트론 2009.08.17 17:01 신고

    우야꼬님, 똑같이 따라해봤는데,

    트레이스가 아예 찍히질 않는것은 무엇이 문제일까요? 경로도 이상없이 확인됬고, 키도 제대로발급받았고,
    혹시나해서, 익스플로러에다가 peerid 랑 커맨드, 변수직쩝넣어서 넘기니까, xml이 출력이되는데,
    왜 플래쉬에서 실행해보면, 트레이스문도 찍히지 않는지..궁금합니당.

    • Favicon of http://wooyaggo.tistory.com 우야꼬  2009.08.17 22:01 신고

      지금 제가 일반 컴퓨터에서 테스트해봤는데 잘 돌아가네요.
      혹시 BrokerURL 이나 개발자키가 공백없이 잘 들어갔는지 궁금하네요.
      trace 문이 찍히지 않는건 아마 NetConnection이 맺어지지 않아서일거 같아요.
      근데 잘못넣으면 에러문이라도 나와야되는데;;
      왜일까요 -_-??

  8. 메타트론 2009.08.18 09:03 신고

    =- =;;꺼이꺼이 왜그런걸까요,;; 하하...쩝,
    개발자키도, 경로도 제대로 적어주었는데,
    chatsample()안에까지는 트레이스가 찍히던데, 이벤트가 발생을 안하는지..
    영 대답이 엄네요.ㅜ_ㅜ 뭐, 체크해바야할사항이나, 의심가는쪽이없는지..ㅜ_ㅜ

  9. 2009.08.18 13:30

    비밀댓글입니다

  10. 2009.08.18 14:56

    비밀댓글입니다

    • Favicon of http://wooyaggo.tistory.com 우야꼬  2009.08.19 18:12 신고

      그러게 되야되는데 왜 그럴까요 ㅠ.ㅠ FP10이면 되야되는건데;;;
      제 블로그 두개 띄워서 야꼬챗 한번 해보세요.
      그게 되면 되야되는게 맞는거고
      야꼬챗은 되는데 테스트가 안되면 뭔가 문제가 있는거네요.

  11. 메타트론 2009.08.20 08:58 신고

    야꼬챗도 안댄다능..ㅡ_ㅡ;;..어도비에들어가

    FP설치하려하면 현재 버전정보가 뜨잖아여?

    거기서 10버전이라고 제대루뜨능데;;

    9버전대도 다지워버렷는데..ㅡ_ㅡ;;왜그러지..허헐..ㅜㅜ

  12. 깐돌이 2011.08.22 17:04 신고

    채팅 괜찮은거 있나 찾보 있는데.. 이글을 보았습니다.
    유용하네요.
    근데, 궁금한 것이 있는데.. ^^;

    이 stratus는 1:1 채팅만 구현이 가능한가요? 1:다수도 처리가 가능한지 궁금합니다.
    가능하다면 좀더 파 보려고요..

    그리고 developer key를 발급 받는 상태인데, 키만 발급 받으면 서비스하는데.. 아무런 문제가 없는지도 궁금합니다.
    답변 가능하면 알려주시면 정말 감사하겠습니다.

+ Recent posts

티스토리 툴바