Overview
vchatCloud sdk
는 채팅 클라이언트 구현을 쉽게 할 수 있도록 도와줍니다.
안드로이드에서 vchatCloud sdk
를 이용하여 실시간 채팅을 빠르고 효율적으로 사용해보세요.
퀵 가이드에서는 vchatCloud sdk
의 구조 및 기능에 대한 간략한 내용을 안내하고 있고,
각 항목에서는 자세한 설명을 바탕으로 실무 프로젝트에 적용하기위한 가이드를 제공하고 있습니다.
채팅서비스 체험하기
채팅방 진입
데모 화면
에서 채팅방으로 진입하기 위해서는 CMS에 생성된 채널키를 포함시켜야 합니다.
만약 채팅방 개설 전 상태라면 링크를 통해 채팅방 생성 및 채널키를 확인하는 방법을 습득해 주세요.
이후 대화명은 채팅방안에서 사용할 대화명과 이모지를 입력 후 확인 버튼을 눌러 채팅방으로 진입해주세요
채팅 하기
채팅은 텍스트 입력박스에 전송할 메시지를 입력후 전송버튼을 누르거나 엔터키를 눌러 전송하세요.
메시지전송이 정상적으로 진행되고 있다면, 다른 디바이스나, PC로 채팅방을 입장해보세요.
다른 사용자로 진입시에 채널키를 동일하게 입력하여 동일한 채팅방으로 진입후, 채팅을 메시지를 주고 받아보세요.
구현코드 확인
채팅방 진입
@Override
protected void onStart() {
private static Channel channel = VChatCloud.getInstance().joinChannel(options, new JoinChannelCallback() {
public void callback(JSONArray history, VChatCloudException e) {
super.callback(history, e);
int historySize = history.size() -1;
for (; historySize >= 0; historySize--) {
messageExposure(new Message((JSONObject) history.get(historySize)), false);
}
$Title.setText(channel.getRoomName());
PreferenceManager.setString(getApplicationContext(),"nickName", nick_name);
}
});
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
채널객체 이벤트 처리
메시지 전송
channel.sendMessage(param, new ChannelCallback() {
@Override
public void callback(Object o, VChatCloudException e) {
if (e != null) {
}
$RecyclerView.smoothScrollToPosition($Adapter.getItemCount());
}
});
1
2
3
4
5
6
7
8
9
10
채팅방의 특정 유저로 메시지를 전송
channel.sendWhisper(json, new ChannelCallback() {
@Override
public void callback(Object o, VChatCloudException e) {
if (e != null) {
}
$RecyclerView.smoothScrollToPosition($Adapter.getItemCount());
}
});
1
2
3
4
5
6
7
8
9
10
채팅방에 메시지가 올라올 경우 발생되는 이벤트
public void onNotifyMessage(JSONObject data) {
System.err.println(data);
Message msg = new Message(data);
msg.setType("msg");
messageExposure(msg, false);
}
1
2
3
4
5
6
7
접속한 유저로 귓속말 메시지가 올라올 경우 발생되는 이벤트
public void onPersonalWhisper(JSONObject data) {
Message msg = new Message(data);
msg.setType("preWhisper");
messageExposure(msg, false);
}
1
2
3
4
5
6
채팅방에 공지 메시지가 올라올 경우 발생되는 이벤트
public void onNotifyNotice(JSONObject data) {
Message msg = new Message(data);
msg.setType("notice");
messageExposure(msg, false);
}
1
2
3
4
5
6
채팅방에 커스텀 메세지가 올라올 경우 발생되는 이벤트
public void onNotifyCustom(JSONObject data) {
Message msg = new Message(data);
msg.setType("custom");
messageExposure(msg, false);
}
1
2
3
4
5
6
채팅방에 신규 유저가 접속 시 발생되는 이벤트
public void onNotifyJoinUser(JSONObject data) {
Message msg = new Message(data);
if (!nick_name.equalsIgnoreCase(msg.getNickName())) {
msg.setType("join");
msg.setMessage(msg.getNickName() + " 님이 입장하셨습니다.");
messageExposure(msg, false);
}
}
1
2
3
4
5
6
7
8
채팅방에 유저가 나간 경우 발생되는 이벤트
public void onNotifyLeaveUser(JSONObject data) {
Message msg = new Message(data);
msg.setType("leave");
msg.setMessage(msg.getNickName() + " 님이 나가셨습니다.");
messageExposure(msg, false);
}
1
2
3
4
5
6
채팅방에서 추방이 되는 경우 발생되는 이벤트
public void onNotifyKickUser(JSONObject data) {
Message msg = new Message(data);
msg.setType("kick");
messageExposure(msg, false);
}
1
2
3
4
5
6
채팅방에서 추방이 해제되는 경우 발생되는 이벤트
public void onNotifyUnkickUser(JSONObject data) {
Message msg = new Message(data);
msg.setType("unKick");
messageExposure(msg, false);
}
1
2
3
4
5
6
채팅방에서 유저가 글쓰기 제한이 되는 경우 발생되는 이벤트
public void onNotifyMuteUser(JSONObject data) {
Message msg = new Message(data);
msg.setType("mute");
messageExposure(msg, false);
}
1
2
3
4
5
6
채팅방에서 유저가 글쓰기 제한이 해제되는 경우 발생되는 이벤트
public void onNotifyUnmuteUser(JSONObject data) {
Message msg = new Message(data);
msg.setType("unMute");
messageExposure(msg, false);
}
1
2
3
4
5
6
중복 로그인 시도 시 기존 접속 유저에게 알림
public void onPersonalDuplicateUser(JSONObject data) {
Message msg = new Message(data);
msg.setType("duplicate");
messageExposure(msg, false);
}
1
2
3
4
5
6
채팅방에서 글쓰기 제한이 되는 경우 발생하는 이벤트
public void onPersonalMuteUser(JSONObject data) {
Message msg = new Message(data);
msg.setType("preMute");
messageExposure(msg, false);
}
1
2
3
4
5
6
채팅방에서 글쓰기 제한이 해제되는 경우 발생되는 이벤트
public void onPersonalUnmuteUser(JSONObject data) {
Message msg = new Message(data);
msg.setType("perUnMute");
messageExposure(msg, false);
}
1
2
3
4
5
6