사용자가 대화방을 열 수있는 사이트가 있다고 가정 해 보겠습니다. 회의실이 열리면 다른 사용자를 초대하고 채팅 할 수 있습니다.WebSocket 서버의 모범 사례는 무엇입니까?
클라이언트와의 통신에 WebSocket을 사용하려는 척도합니다. 대부분의 서버 측 WebSocket 구현에는 브로드 캐스트를 시작한 사람이 아닌 연결된 모든 호스트에 메시지를 보내는 connection.broadcast(message)
과 같은 간단한 기능이 있습니다. 이것은 훌륭한 기능입니다. 왜냐하면 당신이 자신의 모든 클라이언트의 목록을 유지하고 업데이트 할 필요가 없기 때문입니다. 대화방 예제의 문제점은이 경우 모든 사람에게 모든 메시지를 브로드 캐스트하지 않고 같은 방에있는 다른 클라이언트에게만 브로드 캐스트하려는 것입니다.
이 두 가지 옵션으로 나를 잎 :
- 롤 차례로 모든 클라이언트 및 객실을 추적하는 것을 의미한다 내 자신의
broadcastToRoom(room_id)
기능을. - 새 회의실이 만들어 질 때마다 새 포트에서 서버의 새 인스턴스를 생성합니다.
무엇을 하시겠습니까?
내가 바로 각 방에 대한 새로운 서버를 산란에서 멀리 부끄러워 것 - 자원의 전체 HTTP 서버를 위해 설계되었습니다하지 무엇을, 폐기물, 당신의 포트는 재빨리 당신이 나중에 그 방향으로 무언가를 확장하기로 결정했다면, 방 사이에서 데이터를 교환하는 것이 훨씬 어렵습니다. –