# 채팅 메시지
채팅 메시지를 보내고 받기 위해서는 필요한 객체 선언과 채팅창기능들이 준비되어야 한다.
만약 준비가 되지 않았다면 생성하는 방법을 익히고 오도록 하자 준비사항 바로가기
# 메시지 전송
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
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
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
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
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
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
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
2
3
4
5
6