방명록

  1. 김정아 2013.02.27 12:50  수정/삭제  댓글쓰기

    안녕하세요. 저는 소프트웨어 전공하고 있는 대학교 4학년 학생입니다.
    질문을 드리고 싶은데 메일주소를 찾을 수가 없어서 여기다가 남기고가요ㅠㅠ!

    제가 요즘 웹에서 실시간으로 화상채팅을 구현해보고자 공부하고 있는 중인데요, 자료를 검색하면서 xgate님의 블로그를 통해

    많은 정보를 얻었습니다. 감사해요!


    다름이 아니라 제가 지금 시도해보고있는 것이 현재는 1:1 채팅입니다(1:1을 이해하고 난 나중에는 다중까지 해볼생각이지만...).

    여러가지 자료를 보면서 어떤방향으로 흘러가는지 이해를 했음에도 불구하고

    서버단의 이해가 부족해서 그런지 잘 진행이 되고 있지 않습니다.

    서버측의 자료는 생각보다 검색을 통해서 잘 찾지도 못하겠더라구요. 저는 서버단으로 node.js를 사용할 생각인데,


    화상대화에서 webkitRTCPeerConnection을 생성하는 것까지 마쳤는데

    콜러가 콜리에게 offer정보(?)를 보내주기 위해서 서버로 보내는 부분이 서버측에서 어떻게 받고 콜리에게 전송이 되는지가 의문입니다.


    xgate님의 소스를 봐도 잘 이해가 가지 않더라구요.


    그리고 돌아가는 방향을 확인해보고싶어서 실행을 시켜보았는데,

    아래 첨부파일과 같이 타입에러가 나더라고요. 이부분은 크롬버전 업데이트 되면서 함수사용이 바껴서그런건가요?


    자료들마다 함수가 다 달라서 최신버전에 맞는 함수 사용법을 찾는것도 일이네요..ㅠㅠ


    어떤부분을 더 살펴보아야할지 조언 좀 부탁드려요!!!! 읽어주셔서 감사합니다. 좋은하루보내세요^^@

    • DevMoon 2013.03.03 17:27 신고  수정/삭제

      안녕하세요, 휴일에 놀러 다녀오느라 답글이 늦었네요 ^^;

      흠..일단 webrtc에 대한 표준은 지금 제 포스팅에 있는 내용과 달라져서 에러가 날거에요. 요즘 이쪽은 안보고 있어서 업데이트를 안했네요 ㅡㅡ;

      그때 당시 기억으로 질문에 대해 답변 드리면,
      1) 서버에 A, B가 접속해있다.
      2) A가 B와 통신하기 위해 자신의 정보들을 서버로 넘긴다.
      3) 서버가 이 정보를 B로 보낸다
      4) B는 이에 대한 응답 메시지를 다시 서버로 보낸다.
      5) 서버는 이 메시지를 다시 A로 보내준다.

      대략 이런식입니다.
      그러니까 서버는 중간에서 릴레이를 해준다고 보시면 되지요.
      그럼 메시지를 만드는 주체는? 바로 웹 브라우저입니다.
      자바스크립트 API를 통해서 통신에 필요한 메시지를 만들게 하고, 이 메시지가 사용자가 등록해놓은 함수에 넘겨지면, 우리가 서버와 맺어놓은 연결을 통해 보내는 것이지요. 그래서 서버와 웹소켓으로 연결을 맺어놓은 것입니다. 그래서, 사실 우리가 메시지를 직접 만들어주지는 않지만, 적절한 시점에 이 메시지들을 웹 브라우저에 넣어주고, 웹 브라우저는 들어온 메시지를 보고 응답 메시지를 만든 후 콜백 함수로 떨궈주고, 우리는 이 메시지를 서버를 통해 상대편으로 보내야 하는 것입니다.

      따라서 서버는 클라이언트 컨넥션을 관리하는 객체를 가지고 있어야 해요. conn[0]에 A에 대한 컨넥션 객체를, conn[1]에 B에 대한 컨넥션 객체를 가지고 있고, A가 메시지를 보내면 이것을 B로 보내줘야 하지요. (conn[0] -> conn[1])

      이런걸 해줘야 하는 이유는 webrtc에 필요한 프로토콜 때문이구요.

      일단 우리가 프로토콜 교환을 도와주고 나면, 나머지는 웹 브라우저끼리 알아서 하게됩니다. 여기서부터 서버는 빠지게 되고, 영상통신은 브라우저간에 일어나게 됩니다.

      열심히 설명을 하긴 했는데 도움이 되셨나 모르겠네요 -_-;
      위 설명은 제가 구현할 당시 로직인데 이대로 흘러가고 있는지는 모르겠네요. 이쪽은 표준을 좀 보셔야할 것같아요.

      아, 그리고 제 메일주소는 '57gate 한멜' 입니다. :)

  2. 2012.11.25 15:55  수정/삭제  댓글쓰기

    비밀댓글입니다

    • DevMoon 2012.12.05 20:15 신고  수정/삭제

      직급이 없는것은 맞습니다. 그렇다고 모두 평사원은 아니지요. 직책은 있다는 말입니다. 평가에 대한정보는 알려드리기 곤란하네요~ 그럼 수고하세요 :)

  3. 2012.06.22 15:35  수정/삭제  댓글쓰기

    비밀댓글입니다