programing

HTML5를 통해 웹 앱이 피어 투 피어 HTTP 연결을 만들 수 있습니까?

newnotes 2023. 3. 16. 21:48
반응형

HTML5를 통해 웹 앱이 피어 투 피어 HTTP 연결을 만들 수 있습니까?

중앙 서버의 도움을 받아 같은 웹 앱의 다른 사용자와 직접 연결할 수 있는 웹 앱을 만들 수 있습니까?UDP 홀 펀칭과 비슷한 과정을 상상하고 있습니다.

HTML5의 새로운 WebSockets API에 대해 읽어보았습니다만, WS 호환 서버와의 접속을 개시할 필요가 있는 것 같습니다.첫 번째 핸드쉐이크에만 서버가 관여하는 클라이언트 간의 직접 접속 프로세스에 대해 좀 더 생각하고 있습니다.

메모: Java 애플릿은 포함되지 않습니다.표준 브라우저 기술에만 관심이 있습니다.

현명한 추측 대신 정보에 입각한 답변이 있습니다.

HTML 5는 javascript로부터의 피어 투 피어 접속을 허가할 예정이지만, 이러한 접속은 RAW TCP가 아닙니다.

전체 사양은 http://dev.w3.org/html5/websockets/에서 확인할 수 있습니다.

jrh

편집: 피어 투 피어 접속에 대한 특정 참조를 사용하여 다음 링크를 확인하십시오.

그 능력이 아직 협상 중이라는 점에 유의해야 합니다.'로컬 채팅' 웹 앱을 만들 수 있으면 좋겠습니다.

jrh

2012년 10월 17일 갱신:이 기능은 이제 Chrome Stable v22에 있습니다.Chrome에서 이 기능을 사용하려면 Chrome://flags에서 두 개의 플래그를 활성화해야 합니다.

  • Media Stream 활성화
  • Peer Connection을 유효하게 하다

그런 다음 AppRTC 데모 페이지를 방문하여 데모를 사용해 보십시오.피어 투 피어 기능을 사용하도록 Chrome을 설정하고 장치 캡처를 활성화하는 방법에 대한 자세한 내용은 WebRTC - Running the Demos 페이지를 참조하십시오.


업데이트: Ericcson Labs 엔지니어는 HTML5 피어피어 컨버세이션 비디오를 실행하는 WebKit 빌드에 개념 증명을 가지고 있습니다.

블로그에는 테크놀로지의 실전에 관한 데모와 테크놀로지의 동작 방법에 관한 도표와 설명이 게재되어 있습니다.

그들은 이것을 안정시키고 WebKit 저장소에 커밋하기 위해 노력하고 있다.

네, 드디어.

이 문서(2017년)에서 WebRTC는 현재 대부분의 최신 브라우저(사용 브라우저의 약 70%)의 표준 부품으로 멀티미디어 스트리밍, 피어 투 피어, 홀 펀칭이 가능합니다.

WebRTC 의 문서, 샘플 코드, 및 라이브의 예는, html5rocks.com 에서 입수할 수 있습니다.

caniuse.com 및 html5rocks.com에 따르면 다음 브라우저가 WebRTC를 지원합니다.

지원: Edge 14, Firefox 22, Firefox Android 55
부분 지원: Android Browser 56, Chrome 20, Chrome Android 29, Edge 12, Firefox 17, Opera 18, Opera Android 20, Opera Mobile 12, UC Browser Android 11.4
향후 지원(2017년 3분기):iOS 11용 Chrome, iOS 11용 Safari 11 및 OS X 10.11용
지원 없음: IE, IE 모바일, Opera Mini

WebRTC의 포화율은 Safari 11이 아직 출시되지 않았고 iOS 11 또는 OS X 10.11이 필요하기 때문에 Apple 기기에서 제한됩니다.WebRTC는 과거 업그레이드 추세로 추정되지만 2018년까지 iOS 기기의 약 75%, 2020년에는 100%에서 사용할 수 있을 것으로 예상됩니다.

이것이 어려운 이유는 다음과 같습니다.

  1. 방화벽(단순한 NAT도 마찬가지)에서는 HTTP보다 훨씬 낮은 프로토콜층에서는 이러한 종류의 접속이 어려워집니다.IT보안 모자를 쓰고 있으면 웹 사이트를 방문하는 것만으로 기계상의 임의의 포트를 열 수 있는 훌륭한 방법이 될 수 있습니다.따라서 거의 모든 기업의 IT시스템에 의해 강력하게 차단됩니다.
  2. HTTP는 본질적으로 클라이언트-서버 프로토콜입니다.긴 폴링(및 다른 몇 가지 기술)을 사용하여 듀플렉스 통신을 시뮬레이트하는 것은 상당히 간단하지만 특별히 효율적이지는 않습니다.
  3. 그러면 XSS 공격에 큰 구멍이 뚫릴 수 있습니다.

WebSockets는 이러한 두 번째 문제를 해결하도록 설계되어 있지만, 나머지 두 가지 문제는 해결할 수 없습니다.HTML5 사양에서 피어투피어에 대해 이야기할 때는 클라이언트 간의 전이중 통신이 아니라 서버와 클라이언트 간의 전이중 통신에 대해 설명합니다.

단, 웹소켓 위에 적절한 네트워크 스택을 구현하는 것은 간단합니다.단, 모든 통신은 서버를 통해 이루어져야 합니다.이것은 롱 폴링을 사용해 행해지고 있습니다(Uni의 친구가 롱 폴링을 사용해 완전한 TCP/IP 스택을 작성했습니다).

I second harshath.jr :서버를 디렉토리로서 동작시킬 수 있습니다(접속되어 있는 각 에이전트의 「origins」를 표시합니다.origin은 draft-abarth-origin과 같이 scheme+host+port, scheme는 ws 또는 wss 중 하나입니다).그 후 피어 투 피어 Web Socket 접속을 시작할 수 있습니다.CORS 덕분에 SOP가 처리됩니다.물론 이는 각 에이전트(브라우저)가 자체 WebSocket 서버(Opera Unity)를 내장해야 함을 의미합니다.

한편, XMPP/IRC 등의 방법으로 실시합니다.피어투피어 접속은 없고, 중앙 서버(또는 네트워크!)에 WebSocket 접속하고, 접속한 에이전트에 메시지를 전달합니다(결국 특정 WebSocket 「서브프로토콜」을 사용).

편집: 이 모든 것은 실제로는 HTML5의 범위를 벗어납니다(이것들은 모두 한때 HTML5의 일부였지만, 독자적인 사양으로 분할되어 있습니다).

웹 소켓의 전체적인 개념은 방화벽과 프록시 문제를 해결하는 것이었습니다.http://www.kaazing.org/confluence/display/KAAZING/What+is+an+HTML+5+WebSocket

언급URL : https://stackoverflow.com/questions/1032006/will-html5-allow-web-apps-to-make-peer-to-peer-http-connections

반응형