Pub/Sub를 사용하여 iOS 앱에서 실시간 업데이트

소개



이 자습서에서는 Applozic SDK 통합을 사용하여 응용 프로그램에 대한 실시간 업데이트를 설정하는 방법을 다룹니다.

다음 방법을 배우게 됩니다.
  • 주제를 구독/구독 취소하고 콜백을 처리합니다.
  • 일대일 및 그룹 채팅에서 타이핑 상태 표시기를 설정합니다.

  • Applozic SDKs 에서 실시간 업데이트는 게시-구독 메시징 패턴으로 처리됩니다. 메시징 패러다임에서 pub-sub의 의미에 대한 몇 가지 기본 개념을 살펴보겠습니다.

    게시-구독 메시징 패턴



    게시-구독(줄여서 게시-구독이라고도 함) 아키텍처에서 브로커라고 하는 정보의 중앙 소스는 네트워크의 모든 데이터를 수신하고 배포합니다. Pub-Sub 클라이언트는 브로커에 데이터를 게시하거나 브로커에서 데이터를 가져오기 위해 구독하거나 둘 다 할 수 있습니다.

    pub-sub에서 기억해야 할 중요한 개념은 서버와 여러 클라이언트 간에 통신 채널topic이 설정된다는 것입니다. 이 채널은 지속적인 네트워크 통신(WebSocket, MQTT 등)으로 표현됩니다. 구독을 기반으로 데이터 전송을 처리하는 중개자를 브로커라고 합니다.

    브로커는 데이터를 저장하지 않습니다. 단순히 게시자에서 구독자로 이동합니다. 게시자로부터 데이터가 들어오면 브로커는 즉시 해당 데이터를 구독하는 모든 클라이언트에게 데이터를 보냅니다.


    Pub-Sub 메시지 흐름

    이는 게시자가 새 데이터를 사용할 수 있는지 확인하는 표준 요청/응답(풀) 모델과 다릅니다. 따라서 pub/sub 방식이 실시간 데이터 스트리밍에 가장 적합한 프레임워크가 됩니다. 또한 이는 pub-sub 아키텍처를 사용하여 동적 네트워크를 대규모로 구축할 수 있음을 의미합니다.

    애플리케이션에서 실시간 업데이트 설정



    이 자습서의 시작점으로 이미 작동하는 애플리케이션이 있고 Applozic Chat SDK 중 하나를 구현했다고 가정하겠습니다.

    Applozic에서 제공하는 iOS Chat SDK 또는 iOS Voice and Video SDK로 애플리케이션을 설정하려는 경우 이 튜토리얼 기사를 따를 수 있습니다.

    이 자습서를 수행하는 동안 문제가 발생하면 [email protected]으로 문의하십시오.

    게시를 위해 연결 중



    구독자가 주제에 대한 메시지를 수신하려면 구독해야 하며 주제가 메시지를 대기열에 전달할 수 있도록 허용하는 사용자 지정 보안 정책도 필요합니다. 다음 코드는 사용자 지정 정책 구축과 관련된 세부 사항을 처리할 필요 없이 이 두 가지를 모두 처리합니다.

    Note: Please replace <APP_ID> with your App Id
    
    ApplozicClient *applozicClient = [[ApplozicClient alloc]initWithApplicationKey:@"<APP_ID>" withDelegate:self];
    
    [self.applozicClient subscribeToConversation];
    


    게시 연결 해제



    구독자가 주제에 대한 메시지 수신을 중지하도록 하려면 다음 코드를 사용하여 연결을 끊을 수 있습니다.

    [self.applozicClient unsubscribeToConversation];
    Note: subscribeToConversation and unsubscribeToConversation need to be called in Appdelegate 
    and in your VIewController file also where you want callbacks in 
    applicationWillEnterForeground or applicationDidEnterBackground
    


    입력 상태 표시기 설정



    입력 표시기를 사용하면 사용자가 일대일 또는 그룹 채팅에서 메시지를 입력하는지 여부를 나타낼 수 있습니다. 사용자가 메시지를 입력하기 시작할 때 타이핑 이벤트를 트리거할 수 있으며 이를 통해 사용자는 자신의 타이핑 상태를 같은 메시지를 구독하는 모든 사람에게 게시할 수 있습니다.

    타이핑 상태 전송 중



    아래 제공된 코드를 사용하여 입력 상태를 게시할 수 있습니다.

    [self.applozicClient sendTypingStatusForUserId:recieverUserId orForGroupId:channelKey withTyping:isTypingStarted];
    


    사용자가 textViewDidChange 입력을 시작하거나 입력을 중지하면textViewDidEndEditing 위의 메서드를 호출합니다.

    논쟁
    유형
    설명

    수신자 사용자 ID

    일대일 타이핑 상태인 경우 recieverUserId를 전달하고 channelKey를 nil로 전달합니다.

    채널키
    NSNumber
    그룹/채널 입력 상태인 경우 channelKey를 전달하고 recieverUserId를 nil로 전달합니다.

    isTypingStarted
    부울
    사용자가 타이핑을 시작한 경우 true 또는 YES를 전달합니다. Pass false or NO in case user stop typing

    Applozic 블로그에서 이 튜토리얼을 계속하세요!



    통합을 계속할 수 있도록 our blog에서 사용할 수 있는 코드 스니펫이 포함된 자세한 자습서가 있습니다!

    Click here to learn 방법:
  • 대리자 콜백 처리
  • 입력 상태 구독 및 구독 취소

  • 아래 댓글에 피드백과 의문점을 남겨주세요!

    좋은 웹페이지 즐겨찾기