실버라이트 소켓통신 개념과 구현하는 방법


Microsoft/Silverlight 2010.11.16 10:21





















그 중 순수 웹 환경에서 실시간 양방향 통신을 위한 스펙이 바로 '웹 소켓(Web Socket)' 이다
웹 소켓은 웹 서버와 웹 브라우저가 지속적으로 연결된 TCP 라인을 통해 실시간으로 데이터를 주고 받을 수 있도록 하는 HTML5의 새로운 사양이다. 따라서 웹 소켓을 이용하면 일반적인 TCP소켓과 같이 연결지향 양방향 전이중 통신이 가능하다
- 박종명의 모바일 플랫폼 中



실제 Ajax방식보다 소켓방식이 50배정도 빠르다고 합니다. (체감상 느낄 수 있는 차이라 생각됩니다.)


실버라이트는 소켓통신을 통해 영상이나 음성을 주고받는 통신이 가능해지는데요, 기본적으로 소켓통신을 하는 경우 실버라이트 소켓 클라이언트(접속자) 정책 파일을 찾기 위해서 사용자 정의 포트인 943 포트로 접근하여 정책파일을 읽습니다.


그렇기에, 소켓통신을 하고자 하는 경우에는 반드시 데이터 스트림용 소켓서버 뿐 아니라, 정책파일을 보내주는 폴리시소켓서버를 구축해야 했는데, silverlight4 에서부터 대폭 완화가 되었습니다.

별도의 (포트 943)의 소켓서버를 구성하지 않고, Http 포트인 80번 포트를 통해 정책파일을 제공할 수가 있습니다.

이를 위해서는 도메인 루트에 clientaccesspolicy.xml 파일을 위치시키고요.



소켓 클라이언트 코드에서 socket.ConnetAsync(args); 를 하기에 앞서 (코딩부분) SocketAsyncEvenArgs의 SocketClientAccessPlicyProtocol 속성 값을 SocketClientAccessPlicyProtocol.Http 로 지정을 해주면 됩니다.

기본값은 943으로 접속하지만, 위와 같이 http를 붙여주면 80번에서 정책 파일을 읽어오게 됩니다.

관련 링크들 ▼
소켓통신 에코서버두어 통신하기 (myifu님의 블로그)
실버라이트 소켓통신 관련 PPT
실버라이트 관련(닷넷 개발자) openyou님의 블로그
MS홈페이지 소켓통신 관련 코드 페이지
저작자 표시 비영리
신고

WRITTEN BY
ShakeJ

0 ,