codestates / codestates/sagaksagak-client
[✍️ Dev Log] 황순은 / 21-07-16
- Dominant language
- JavaScript
- Stars
- 4
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
### 오늘은 어떻게 프로젝트에 기여했나요?
- 화상채팅방에서 새로들어온 유저입장에서 기존에 방에 있던 유저가 나가면 그 유저의 해당video를 지우지 못하는 이슈를 해결했다.
### 오늘의 프로젝트에서 힘든 점은 무엇인가요?
- 해결하지 못한 에러들은 장염으로 아픈와중에도 꿈에서 나온다.
- 스택들에 대한 이해도가 높아야 정상적으로 적용이 가능하다. 유저들의 각클라이언트는 각각 고유하다고 봐야하고, 유저들의 video의 값중 고유한 값이 무엇인지 찾아야 했다. mediaDevices.getUserMedia로 뽑아온 값은 srcObject의 id에 유일한 값이 존재 하였으며 유저들의 각각의 클라이언트에서도 유일한 값이었다. 따라서 socket.io통신시 srcObject의 id를 주고받고 유저가 나갈시에는 그 값을 갖는 video를 없애주는것으로 해결했다.
```js
socket.on('user-disconnected', (peerId, username, streamId) => {
dispatch(setDeleteUser(peerId))
setUsers(prev => prev - 1)
const video = document.querySelectorAll('video');
let removeVideo;
for (let i = 0; i < video.length; i++) {
if (video[i].srcObject.id === streamId) {
removeVideo = video[i]
}
}
removeVideo.remove()
})
```
### 내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?
- [ ] 전사적 에러핸들링
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.