'COMET'에 해당되는 글 4건

  1. 2007.07.23 Comet 에서 IFrame 으로 스트리밍시 문제점 (4)
  2. 2007.06.18 Comet 개요 (3)
  3. 2007.06.07 Comet 개념정리 (9)
  4. 2007.06.07 Comet 의 핵심 Flush - 어떻게 할까 (1)
HTTP Streaming 에서 제시한 여러가지 방법중 Flush 를 가장 효과적으로 사용하기 좋은 모델인 IFrame 방식을 작성하다보니 문제가 좀 있는 것 같다.

우선 XHR( Xml-Http-Request)를 사용하지 않고 iframe 을 선택한 이유는 스트리밍을 사용하기 위해서다. Flush 라는 스트리밍에 딱 맞는 모델이 있기 때문인데...XHR 의 경우는 Flush 처리된 것을 읽어 들이기가 쉽지 않다. 따라서 XHR 인경우는 콜백에 의지할 수 밖에 없는데, 그렇게 되면 요청수가 좀 많아진다.

IFrame 방식으로 요청을 보낼때의 문제는  바로 상태바에 진행바가 나타난다는 것이다.또한 커서에 모래시계가 나타난다. 그래서 좀 어설픈 모양이 나온다.

혹시 iframe 에 url 호출시 상태진행바와 모래시계를 안보이게 할 방법이 없을까...

-- 아래는 트백백에 대한 수정글 --

XHR을 이용한 Comet 구현.... 에서 Iframe 방식이 아닌 , 타이머를 사용해 responseText 를 조사하는 방법을 제시하고 있다.
사실 이 방법을 고려하지 않은 것은 아닌데...YUI-Connection 에서는 Response 과 완료되기 전에 responseText 에 접근하면 에러를 낸다.접근할 수 없다는...XHR 을 직접 사용해 본 것은 아니다.

잘 동작 했다니..테스트를 좀 해봐야 겠다.
신고

댓글을 달아 주세요

  1. Favicon of http://10year.tistory.com BlogIcon stone 2007.07.23 09:36 신고 Address Modify/Delete Reply

    역시 검토를 하셨던거군요.
    아차 해서 IE에서 테스트를 해보니 문제가 있네요.
    파이어폭스만 테스트해보고 된다고 생각하다니... - -
    역시 많이 배워야 할듯.

  2. Favicon of http://boast.tistory.com BlogIcon 망구 2008.01.28 00:43 신고 Address Modify/Delete Reply

    안녕하세요 cometd 에 관한 글을 찾아보다가 님의 블로그를 알게되었습니다.
    구체적인 구현을 해보고싶은데, 서버측 구현과 클라이언트측 구현을 어떻게 하신건지 궁금합니다.
    tominku@naver.com 제 메일이구요..
    네이트온 메신저도 tominku@naver.com 입니다
    구체적인 구현에대해서 여쭙고 싶습니다. 감사합니다.

  3. Favicon of http://boast.tistory.com BlogIcon 망구 2008.01.28 00:48 신고 Address Modify/Delete Reply

    서버측은 cometd push 모델은 프레임웍을 쓰신건지, 아니면 직접 구현하신건지..

    • Favicon of http://steelleg.tistory.com BlogIcon 무쇠다리 2008.01.28 08:56 신고 Address Modify/Delete

      위키피디아에 잇는 문서를 보고 만들었습니다.
      대부분의 자료가 php 나 자바쪽이라서, 전 닷넷 개발자라 새로 만들었습니다.
      아직 완성된 것은 아니구요. 프로토타입정도의 수준입니다.

Comet 개요

javascript/comet 2007.06.18 10:15 |
코멧이란 기존의 웹 모델과는 달리 클라이언트의 요청없이 서버가 클라이언트에 데이타를 전달하는 기술을 말한다.
이런 push 형태의 모델을 언급한 Comet:Low Latency Data for the Browser란 글에서 저자인 Alex Russell이 이름 지었다.

이 기술을 바탕으로 윈도우 application 에서와 비슷한 event-driven web application 을 구현할 수 있다.

워래의 웹페이지 모델은 connectionless 모델로 클라이언트(대략 브라우저)에서 명시적인 요청을 보내면 이에 대해 서버가 연결(connection) 을 생성하고 이를 통해 데이타(페이지)를 전송 후 연결을 닫는 형태이다. 따라서 페이지를 갱신하거나 url 을 바꾸거나 할때 페이지의 전체를 구성하는 데이타가 전송되어야 햇으며 , 이때 불필요한 데이타의 전송으로 인한 지연이 발생할 소지가 많았다.
이에 대한 해결책이 ajax 로, 페이지에 업데이트할 부분만 요청하고 그부분만 다시 렌더링하여 서버와 네트웍 부하를 최소화 하는 것이다. 또한 기존의 리프레쉬 방식에서는 서버가 응답하는 동안 유저는 빈화면을 멀뚱히 보며 기다려야 했으나 ,ajax 는 비동기 통신이므로 유저는 응답을 기다리며 다른 일을 할 수 있다.
하지만 이 모델은 항상 클라이언트가 서버에 명시적인 데이타 요청을 하지 않으면 결과를 얻어을 수 없다는 것은 기존 방식과 같다.

이 문제는 event-driven 방식의 어플리케이션을 설계하는데 매우 중요한 문제다. 서버의 이벤트를 감지해 클라이언트에 push 할 방법이 없을까... 한가지 대안은 주기적으로 비동기 요청을 클라이언트가 서버에 보내 확인해 보는 방법이다. 하지만 이것은 썩 좋은 모델이 아니다. 쓸데없는 많은 요청을 보내야 하므로 서버부하는 물로 네트웍 대역폭에도 낭비가 심하다.

더 나은 모델은 클라이언트가 서버에 요청이 없어도 이벤트가 발생하면 서버가 클라이언트에 메세지를 전달하는 것이다. 그러면 클라이언트가 주기적으로 서버를 체크할 필요가 없어진다. 이러한 Server-Push 방식을 Comet 이라고 한다.

하지만 push 모델은 다량의 연결을 발생시켜 시스템부하를 일으킬 문제를 갖고있다. 그러나 다행히 이에 대한 해결방안 또한 여러 대안이 나오고있다.Ajax/Comet Request Router는 이에 대한 메카니즘을 제공하고 있다.
그 밖에 브라우저의 유저당 2 커넥션만 지원 문제도 고려 해야 한다.그리고 클러스터 시스템을 위한 메세지 지향 미들웨어도 읽어 볼만 하다.

  • 참고 :COMET - the next stage of AJAX
  • 참고 :위키피디아 코멧
  • 참고 : Exploring Reverse AJAX
  • 신고

    댓글을 달아 주세요

    1. Favicon of http://www.hermesbagsoutletsale.com BlogIcon Hermes Bags 2011.12.11 17:08 신고 Address Modify/Delete Reply

      아이구, 괜 찮 아요 요.아주 재미 있 었 어요.

    2. Favicon of http://www.drebeatsoutletus.com BlogIcon Monster Beats Outlet 2011.12.11 17:08 신고 Address Modify/Delete Reply

      훌 륭 한 작품 이다.

    3. Favicon of http://www.drebeatsoutlet4u.com BlogIcon Monster Beats Outlet 2011.12.11 17:08 신고 Address Modify/Delete Reply

      다른 느낌 을 나 누 는 감사합니다.

    http://blog.naver.com/myfancy/140035609029

    위의 글에 딮프리님이 번역된 글을 올렸다.(퍼 온것은 아니듯..^^)

    원본은 Exploring Reverse AJAX 이다.
    실시간 정보를 유지하는 웹기술들을 서로 비교하고 설명하고 있다.
    신고

    댓글을 달아 주세요

    1. Favicon of http://www.drebeatsoutletus.com BlogIcon Monster Beats Outlet 2011.11.29 16:42 신고 Address Modify/Delete Reply

      훌 륭 한 작품 이다.

    2. Favicon of http://www.mosterbeatbydre.com BlogIcon Monster Beats 2011.11.29 17:05 신고 Address Modify/Delete Reply

      다른 느낌 을 나 누 는 감사합니다.

    3. Favicon of http://www.mosterbeatbydre.com BlogIcon Monster Beats 2011.11.29 17:05 신고 Address Modify/Delete Reply

      다른 느낌 을 나 누 는 감사합니다.

    4. Favicon of http://www.hermesbagsoutletsale.com BlogIcon Hermes Bags 2011.11.29 17:27 신고 Address Modify/Delete Reply

      아이구, 괜 찮 아요 요.아주 재미 있 었 어요.

    5. Favicon of http://www.drebeatsoutletus.com/ BlogIcon dr dre beats outlet 2011.12.04 12:10 신고 Address Modify/Delete Reply

      간단합니다. 파일이름이 망가진 파일이나 폴더를 프로그램에 마우스를 이용해서 떨어뜨리거나, Cmd+C 로 파일을 복사해 놓은 다음 Sit*fiX 프로그램에서

    6. Favicon of http://www.cheapnikeshox-store.com/ BlogIcon cheap nike shox 2011.12.04 12:10 신고 Address Modify/Delete Reply

      사진이 너무 아름다워, 공유 주셔서 감사합니다, 항상 헬리 온 것입니다.

    7. Favicon of http://www.cheapnikeshox-store.com BlogIcon discount nike shox 2011.12.31 00:52 신고 Address Modify/Delete Reply

      공유 주셔서 감사합니다
      http://www.cheapnikeshox-store.com

    8. Favicon of http://www.cheapopinailpolishsale.com/ BlogIcon opi nail polish sale 2011.12.31 01:11 신고 Address Modify/Delete Reply

      인터넷 등 미디어를 활용해 감흥을 전달하는 예술이다
      http://www.cheapopinailpolishsale.com/

    9. Favicon of http://www.parkaoutletstore.com/ BlogIcon north face winter jackets 2011.12.31 01:12 신고 Address Modify/Delete Reply

      오웰'은 20세기 대표적인 미디어아트 작품이다
      http://www.parkaoutletstore.com/

    코맷으로 push 를 구현할때, 고민되는 것이 있다.
    ajax 콜(비동기 요청보내기를 이렇게 부르겠다)로 구현할 것이냐, iframe 방식으로 할것이냐...

    ajax 콜은 좀 더 편한 코딩을 지원한다.이유는 다양한 라이브러리(yui 같은)에서 편리한 기능들을 제공해 주기 때문이다. 단점은 Flush 기능을 사용할 방법이 없다는 것이다.
    서버에서 Flush  를 했을때 대부분의 비동기 통신에서 이것을 알아차릴 방법을 찾지 못했다.
    (혹시 아는 분 답글이나 힌트 좀 주세요..ㅜㅜ) 콜백함수가 호출되는 이벤트(onreadystatechanged 인가?)는 요청의 상태변화를 보고 발생하는 것인데...테스트 해보니 Flush 의 경우는 해당사항이 없다.
    비동기 통신에서 Flush 에 대한 이벤트 콜백을 만들수 없다면 iframe 방식으로 가야할 듯 하다.
    ajax 방식이 멋지긴 하지만  flush 를 살릴수 없다면 http-streaming 이라고 하기 어렵기 때문이다. 그리고 iframe 방식에 비해 너무 빈번한 커넥션이 발생한다.

    우선은 여기까지...
    신고

    댓글을 달아 주세요

    1. Favicon of http://www.drebeatsoutletus.com BlogIcon Monster Beats Outlet 2011.11.28 16:56 신고 Address Modify/Delete Reply

      아이구, 괜 찮 아요 네, 고맙습니다 는 나 눠 갖 는 다.