programing

웹소켓은 p2p(브라우저 대 브라우저) 통신을 허용합니까?

showcode 2023. 3. 21. 22:42
반응형

웹소켓은 p2p(브라우저 대 브라우저) 통신을 허용합니까?

브라우저 대 브라우저 통신에 대해 질문할 때 명확히 하기 위해 메시지 전달 사이에 서버가 없는 것을 의미합니다.저는 이런 것을 게임에 구현하고 싶습니다.만약 웹소켓의 p2p가 가능하지 않다면 비슷한 대안이 있나요?어떤 도움이라도 감사합니다.

아니요. 브라우저는 웹소켓 연결만 시작할 수 있고 수신은 할 수 없습니다.W3C 브라우저 API 사양에서는 아웃바운드 연결을 시작하는 방법만 정의합니다.

웹소켓 연결을 시작하거나 허용하는 응용 프로그램을 만들 수 있지만 브라우저에서는 그렇지 않습니다.

여러 클라이언트에서 WebSockets 애플리케이션을 구축하는 데 사용할 수 있는 Pusher App을 볼 수 있습니다.이 서비스는 최대 20개의 동시 WebSockets 클라이언트를 무료로 제공합니다(확장성이 높아지면 비용을 지불하실 수 있습니다).

업데이트:

WebRTC 프로토콜과 API는 빠르게 발전하고 있으며 두 피어 간에 데이터 채널을 설정할 수 있습니다(초기 NAT 통과 및 설정에는 STUN/TRUNN 서버가 필요할 수 있습니다).

이론적으로는 WebRTC 데이터 채널을 사용하여 가능합니다.

RTCData Channel은 고성능, 낮은 레이텐시, 피어 투 피어(peer-to-peer) 통신용 WebRTC API입니다.API는 WebSocket과 비슷하지만 브라우저 간에 직접 통신이 이루어지므로 RTCDataChannel은 방화벽 및 NAT에 대처하기 위해 릴레이(TRUNN) 서버가 필요한 경우에도 WebSocket보다 훨씬 더 빠를 수 있습니다.

"이론"은 안정적인 브라우저에서 아직 지원되지 않으며 브라우저 중 하나가 대칭형 NAT 뒤에 있는 경우에도 릴레이 서버(TRUNN)가 필요하기 때문입니다.그럼에도 불구하고, 이것은 정말 유망한 특징입니다.

업데이트: Chrome 26 및 Firefox 22는 기본적으로 RTCData Channel을 지원하며, WebRTC를 사용하도록 설정한 경우 Firefox 19-21을 지원합니다.media.peerconnection.enabledtrue(정보:config).

웹 소켓과 피어 2 피어에 대해 읽다가 피어(peer)JS.

저는 아직 아무것도 만들지 않았지만, 예를 들어 보면 유망해 보입니다.

현재는 Chrome만 가능합니다.FF 및 Opera는 이를 지원합니다(데스크탑).

PeerJs나 js-platform-p2p와 같은 라이브러리가 현재 웹에 나타나기 시작하고 있습니다.

AJAX 콜과 함께 http://httprelay.io 를 사용하는 것이 간단하고 신뢰성 높은 크로스 브라우저 지원 방법입니다.게임 개발에 도움이 될 수 있는 일대다 커뮤니케이션도 구현하고 있습니다.

언급URL : https://stackoverflow.com/questions/4118272/do-websockets-allow-for-p2p-browser-to-browser-communication

반응형