# 채팅 메시지

채팅 메시지를 보내고 받기 위해서는 필요한 객체 선언과 채팅창기능들이 준비되어야 한다.
만약 준비가 되지 않았다면 생성하는 방법을 익히고 오도록 하자 준비사항 바로가기

# 메시지 전송

JSONObject param = new JSONObject();
param.put("message", "안녕하세요");
param.put("mimeType", "text");

channel.sendMessage(param, new ChannelCallback() {
    @Override
    public void callback(Object o, VChatCloudException e) {
        if (e != null) {
            Log.d(TAG,"메시지 전송오류");
        }
    }
});
1
2
3
4
5
6
7
8
9
10
11
12
  • 파라미터 값

    식별자 설명
    message String 전송할 메시지
    mimeType String 메시지형태 (text: 일반텍스트, emoji_img: 이모지)
  • 결과 값

    식별자 설명
    code String 에러 코드
    message String 에러 메시지

# 프로젝트에 적용할 코드

    # 신규 메시지 이벤트

    // ChatActivity.java
    public void onNotifyMessage(JSONObject data) { // 메시지 이벤트
        Log.d("채팅글", data);
    }
    
    1
    2
    3
    4
    • 푸시 결과 값

      식별자 설명
      nickName String 메시지를 전송한 채팅방 입장 유저의 별명
      roomId String 채팅방 생성 후 발급받은 Channel Key
      clientKey String 메시지를 전송한 접속 단말 설정 고유키
      message String 전송된 메시지
      mimeType String 메시지형태 (text: 일반텍스트, emoji: 이모지)
      messageDt String 전송 날짜
      messageCount String 채팅방 메시지 전송 수
      grade String 메시지를 전송한 유저의 등급 ( 사용자등급표 에서 확인 )

    # 프로젝트에 적용할 코드

    // ChatActivity.java
    public void onNotifyMessage(JSONObject data) { // 메시지 이벤트
        Message msg = new Message(data);
        msg.setType("msg");
    
        messageExposure(msg, false);
    }
    
    1
    2
    3
    4
    5
    6
    7

    # 특정 유저로 메시지를 전송

    JSONObject json = new JSONObject();
    json.put("receivedClientKey", '대상 유저키');
    json.put("message", "메시지내용");
    json.put("mimeType", "text");
    channel.sendWhisper(json,  new ChannelCallback() {
        @Override
        public void callback(Object o, VChatCloudException e) {
            if (e != null) {
                Log.d(TAG,"메시지 전송오류");
            }
            $RecyclerView.smoothScrollToPosition($Adapter.getItemCount());
        }
    });
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    • 파라미터 값

      식별자 설명
      message String 전송할 메시지
      mimeType String 메시지 형태 (text: 일반텍스트, emoji: 이모지)
      receivedClientKey String 수신 유저의 접속 단말 설정 고유키
    • 결과 값

      • err
      식별자 설명
      code String 에러 코드
      message String 에러 메시지
      • msg
      식별자 설명
      roomId String 채팅방 생성 후 발급받은 Channel Key
      nickName String 채팅방 입장 유저의 별명
      clientKey String 메시지를 전송한 접속 단말 설정 고유키
      message Date 전송한 메시지
      mimeType String 메시지 형태 (text: 일반텍스트, emoji: 이모지)
      messageDt String 전송 날짜
      messageCount String 채팅방 메시지 전송 수
      receivedNickName String 메시지를 받는 유저의 별명
      receivedClientKey String 메시지를 받는 접속 단말 설정 고유키
      grade String 메시지를 전송한 유저의 등급 ( 사용자등급표 에서 확인 )

    # 프로젝트에 적용할 코드

    @Override
    public void onClick(DialogInterface dialog, int which) {
        Log.d(TAG, "Yes Btn Click");
    
        // Text 값 받아서 로그 남기기
        String value = et.getText().toString();
        Log.d(TAG, value);
        JSONObject json = new JSONObject();
        json.put("receivedClientKey", message.getClientKey());
        json.put("message", value);
        json.put("mimeType", "text");
        channel.sendWhisper(json,  new ChannelCallback() {
            @Override
            public void callback(Object o, VChatCloudException e) {
                if (e != null) {
                    Log.d(TAG,"메시지 전송오류");
                }
                $RecyclerView.smoothScrollToPosition($Adapter.getItemCount());
            }
        });
        dialog.dismiss();     //닫기
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22

    # 개인 귓속말 메시지 이벤트

    public void onPersonalWhisper(JSONObject data) { // 개인 귓속말 이벤트
        Log.d("귓속말", data);
    }
    
    1
    2
    3
    • 푸시 결과 값

      식별자 설명
      roomId String 채팅방 생성 후 발급받은 Channel Key
      nickName String 채팅방 입장 유저의 별명
      clientKey String 메시지를 전송한 접속 단말 설정 고유키
      message Date 전송한 메시지
      mimeType String 메시지 형태 (text: 일반텍스트, emoji: 이모지)
      messageDt String 전송 날짜
      messageCount String 채팅방 메시지 전송 수
      receivedClientKey String 메시지를 받는 접속 단말 설정 고유키
      grade String 메시지를 전송한 유저의 등급 ( 사용자등급표 에서 확인 )

    # 프로젝트에 적용할 코드

    public void onPersonalWhisper(JSONObject data) { // 개인 귓속말 이벤트
        Message msg = new Message(data);
        msg.setType("preWhisper");
    
        messageExposure(msg, false);
    }
    
    1
    2
    3
    4
    5
    6
    Copyright 2022. E7Works Inc. & JOYTUNE Corp. All Rights Reserved.