socket.io - 실습 (datachannel 대안)

Namlulu·2021년 11월 30일
0

Socket

목록 보기
11/11
socket.on('welcome', async () => {
  myDataChannel = myPeerConnection.createDataChannel('chat');
  myDataChannel.addEventListener('message', (event) => console.log(event));
  console.log('made data channel');
  const offer = await myPeerConnection.createOffer();
  myPeerConnection.setLocalDescription(offer);
  console.log('b. sent the offer');
  socket.emit('offer', offer, roomName);
});

socket.on('offer', async (offer) => {
  myPeerConnection.addEventListener('datachannel', (event) => {
    myDataChannel = event.channel;
    myDataChannel.addEventListener('message', (event) => console.log(event));
  });
  console.log('1. received the offer');
  myPeerConnection.setRemoteDescription(offer);
  const answer = await myPeerConnection.createAnswer();
  myPeerConnection.setLocalDescription(answer);
  console.log('c. sent the answer');
  socket.emit('answer', answer, roomName);
});

=> socket.io를 사용하지 않고 WebRTC의 data channel을 통해서 채팅을 구현할 수 있다.
https://developer.mozilla.org/ko/docs/Web/API/WebRTC_API/Using_data_channels

profile
Better then yesterday

0개의 댓글