조건부로 WebSocket 메시지를 보내는 방법은 무엇입니까?
P粉933003350
P粉933003350 2023-09-18 14:56:33
0
1
531

저는 javascript와 expressjs의 ws 패키지를 사용하여 서버를 구축하고 있습니다.

제 포트폴리오용 채팅 앱을 구축 중인데 처음에는 클라이언트가 사용자가 어떤 채팅(구독)에 있는지 서버에 알리고 이를subscriptions배열에 저장하도록 하는 것이 아이디어였습니다.

으아악

이것이 제가 원하는 접근 방식이지만 연결된 모든 클라이언트에게 메시지가 전송된다는 점은 안타깝습니다.

구독 객체는 사용자가 참여하고 있는 채팅의 ID를 포함하는 배열일 뿐입니다.

채팅 중인 고객에게만 메시지를 보내는 방법은 무엇인가요?

P粉933003350
P粉933003350

모든 응답 (1)
P粉198749929

먼저 각 클라이언트를 구독 중인 채팅 ID에 매핑하는 방법을 유지해야 합니다. JavaScript의Map를 사용하여 이 작업을 수행할 수 있습니다. 여기서 키는 클라이언트 개체이고 값은 구독 중인 채팅 ID의 배열입니다.

으아아아

클라이언트가 WebSocket에 연결되면 구독 정보를 SubscriptionsMap에 저장합니다. 클라이언트의 연결이 끊어지면 지도에서 구독을 제거해야 합니다.

으아아아

이제 특정 채팅에서 클라이언트에게 보내야 하는 메시지를 받으면 연결된 클라이언트를 반복하여 관련 채팅 ID를 구독하는 클라이언트에게만 메시지를 보냅니다.

으아아아
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿
    회사 소개 부인 성명 Sitemap
    PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!