[UPL002] RTMFP를 이용한 커뮤니케이션

Project/UPL 2009. 6. 23. 22:31


UPL의 두 번째 작업으로 FlashPlayer10 버전부터 추가된 Real-Time Media Flow Protocol(RTMFP) 통신을 이용하여 채팅 기능을 구현하였다. RTMFP가 기존의 Real-Time Messaging Protocol(RTMP)와 다른 점을 이야기 한다면 크게 두 가지로 볼 수 있다. 하나는 RTMP의 경우 데이터를 client가 공유하기 위해 Flash Media Server가 꼭 필요했던 반면 RTMFP의 경우는 FMS 필요 없이 FlashPlayer 간 직접 통신이 가능하다.(플래시플레이어 간 통신을 위해 호스트 통합 서비스인 Adobe Stratus를 통해서 부여된 id를 이용해서 서로 통신을 한다.) 그리고 두 번째로는 RTMP의 경우는 TCP 프로토콜을 사용하여 데이터 손실 없는 안정적인 통신을 할 수 있는 반면 속도에는 한계는 있었다. 그러나 RTMFP는 UDP를 사용함으로써 데이터 손실이 발생할 가능성이 있지만 속도 면에서는 빠르다.


무엇보다도 미디어 서버를 사용하지 않고 직접 플래시플레이어 사이에 통신을 할 수 있고 속도 면에서도 빠르다는 강력함이 무척 매력적이다.



UPL002에서는 RTMFP를 이용하여 해당 swf을 띄워놓으면 자동으로 채팅의 참여자가 되며 자신의 마우스 움직임과 타이핑 내용이 실시간으로 해당 swf를 띄워놓은 동시 접속자의 화면에 표현된다. swf를 여러 개 띄워놓고 테스트할 수도 있다.

개발 구조는 하나의 swf안에서 서버와 클라이언트 역할을 같이 하게 되며 접속을 하면 기존에 접속된 사용자들의 id를 모두 연결하고 자신의 id도 등록한다. 이때 특정 사용자가 브라우저를 닫거나 swf 실행을 종료할 경우 해당 아이디를 삭제하는데 최종 사용자의 경우에는 자신을 닫는지 여부를 확인할 방법이 없다. 따라서 모든 사용자가 종료하더라도 하나의 아이디는 잔존하며 이후 최초 사용자가 접속을 할 때 기존의 id의 연결을 실패할 때 해당 아이디를 삭제하는 형태로 제작 되었다.

RTMFP의 경우 UDP를 사용하므로 방화벽 차단이 되어 있는 네트워크 상에서는 외부에서 접속한 사용자와 연결이 되지 않을 수 있다.


관련 자료 참고 링크
http://kb2.adobe.com/cps/405/kb405549.html
http://www.adobe.com/devnet/flashplayer/articles/rtmfp_stratus_app.html
http://download.macromedia.com/pub/labs/flashplayer10/flashplayer10_rtmfp_faq_070208.pdf
http://www.adoberia.co.kr/iwt/board/board.php?tn=pds_tech&page=2&id=244&mode=view
http://wooyaggo.tistory.com/tag/rtmfp

    

설정

트랙백

댓글

  • cmr 2009.06.24 10:24 ADDR 수정/삭제 답글

    자수님 블로그에 자주 오는데 참 멋진 작업이네요. 후훗.

    • jasu 2009.06.24 11:36 신고 수정/삭제

      cmr님 오랜만인데요~ 쿠쿠 점심은 뭐 먹나

  • 제라드 2009.06.24 11:11 ADDR 수정/삭제 답글

    정말 멋지십니다.. 저는 이런걸 언제쯤 해보게 될런지...

    • jasu 2009.06.24 11:37 신고 수정/삭제

      플래시가 멋지죠 쿠쿠 감사합니다.

  • SC 2009.06.29 23:48 ADDR 수정/삭제 답글

    와우 정말 굉장합니다. 막.. 뇌를 자극하는군요.. 아마 AIR 랑도 통신할수 있겠죠??
    그럼 서버에 AIR 띄워 노코 AIR로 Sqlite 로 DB 를 관리하면.. 게시판서비스도 할수 있겠네요 ...

    가능할까요??

    • jasu 2009.06.30 17:01 신고 수정/삭제

      안녕하세요
      가능합니다. 다만 rtmfp로 개발할 경우 방화벽 네트워크에서는 다른 외부와 연결이 되지 않을 수 있겠죠 이 부분이 참 아쉽네요 ^^

  • 리노아 2009.07.01 05:35 ADDR 수정/삭제 답글

    자수님 참 멋지십니다~!!
    지금 오전 5시 35분인데 피곤에 케쩝니다.. 살려주세요~

  • 지돌스타 2009.07.01 13:27 ADDR 수정/삭제 답글

    멋진 프로그램입니다. 우주배경이 정말 멋지네요 ㅋㅋㅋ
    오리온성운과 말머리 성운이군요.

    • jasu 2009.07.01 22:10 신고 수정/삭제

      쿠쿠 인터넷에서 성운 이미지를 찾아서 사용하긴 했는데 오리온성운 이군요 감사합니다. ^^

  • 2009.07.07 11:27 ADDR 수정/삭제 답글

    비밀댓글입니다

  • 닥서클 2009.07.09 20:55 ADDR 수정/삭제 답글

    와 이런게 있었군요.. 실시간으로 사람들과 같이 그림을 그리는 그림판을 만들어보고 싶었는데
    퍼포먼스도 그렇고 php를 제대로 활용하는데 한계가 있어서 생각만으로 그첬는데
    이걸 이용한다면 서버를 거치지 않고 훌륭한 퍼포먼스가 나오겠네요!!

    멋진작업니다!!^^

    • jasu 2009.07.16 20:30 신고 수정/삭제

      기술은 단순하지만 그것을 사용하는 것에 따라서는 멋진 작업이 되기도 할 것 같아요 ^^ 감사합니다.

  • 나인 2011.06.20 17:27 ADDR 수정/삭제 답글

    좋은 정보 감사합니다.

    혹시 지금도 udp 때문에 문제가 되나요? FMIS로 구현하려는데 방화벽 때문에 사이트 사용자들이 이용하지 못하면 대략 낭패인지라...

    무튼 정보 잘 봤습니다~