3.1초기화 및 종료
3.1.1초기화
* webRtc 초기화를 실행한다. 한번만 실행해야 한다.
kr.co.nexus.webrtclib.CustomChat public static int start(Context context)
CustomChat.start(getApplicationContext());
3.1.2종료
webRtc 사용 종료처리한다.
kr.co.nexus.webrtclib.CustomChat public static int stop(Context context)
CustomChat.stop(getApplicationContext());
3.2콜백
- 이벤트 콜백은 "otto (event bus)" Lib 를 사용하여 구현되어 있습니다.
> https://github.com/square/otto
3.2.1이벤트 콜백 등록 / 해제
3.2.1.1이벤트 콜백을 받을 otto Bus Event 등록
해당 메소드는 아래의 otto 의 메소드를 wrapping 한 메소드 입니다.
이미 사용 중이라면 중복 사용하지 않아도 됩니다.
- BusProvider.getInstance().register(object);
kr.co.nexus.webrtclib.CustomChat public static void registerEvent(Object object)
CustomChat.registerEvent(this);
3.2.1.2이벤트 콜백을 받을 otto Bus Event 해제
해당 메소드는 아래의 otto 의 메소드를 wrapping 한 메소드 입니다.
이미 사용 중이라면 중복 사용하지 않아도 됩니다.
- BusProvider.getInstance().unregister(object);
kr.co.nexus.webrtclib.CustomChat public static void unregisterEvent(Object object)
CustomChat.unregisterEvent(this);
3.2.2이벤트 콜백 수신
- 이벤트 수신에 사용되는 class 는 다음과 같습니다.
> 채팅방 접속/종료
kr.co.nexus.webrtclib.callmsg.event
public class WaivCallMessageConnectEvent
> 채팅방 메시지 수신/발신
kr.co.nexus.webrtclib.callmsg.event
public class WaivCallMessageStatusEvent
> 채팅방 상태
kr.co.nexus.webrtclib.callmsg.event
public class WaivCallMessageEvent
3.2.2.1채팅방 접속/종료 시 이벤트 수신
네트웍으로 인한 연결 종료시는 발생하지 않습니다. 이때는 상태변화 함수를 참고하세요
@Subscribe
public void onWaivCallMessageConnectEvent(WaivCallMessageConnectEvent connectEvent) {
switch (connectEvent.getEvent()) {
case WaivCallMessageConnectEvent.EVENT_CONNECTED: {
// 채팅방 연결
break;
}
case WaivCallMessageConnectEvent.EVENT_CLOSED: {
// 채팅방 연결 해제
break;
}
}
}3.2.2.2채팅방 메시지 수신/발신 이벤트 수신
> 채팅 메시지 송/수신 시 사용되는 데이터 클래스
kr.co.nexus.webrtclib.callmsg.data
public class WaivMessageTextData
> 채팅 파일 송/수신 시 사용되는 데이터 클래스
kr.co.nexus.webrtclib.callmsg.data;
public class WaivMessageFileData
@Subscribe
public void onWaivCallMessageEvent(WaivCallMessageEvent messageEvent) {
boolean isSendMessage = messageEvent.isSendMessage();
WaivMessageSimpleData waivMessageSimpleData = messageEvent.getWaivMessageSimpleData();
String type = waivMessageSimpleData.getType();
switch (type) {
case WaivMessageSimpleData.TYPE_TEXT: {
WaivMessageTextData waivMessageTextData = (WaivMessageTextData) waivMessageSimpleData;
String msg = waivMessageTextData.getMessage();
if (isSendMessage) {
// 메시지 발신
} else {
// 메시지 수신
}
break;
}
case WaivMessageSimpleData.TYPE_FILE: {
WaivMessageFileData waivMessageFileData = (WaivMessageFileData) waivMessageSimpleData;
String fileUrl = waivMessageFileData.getFile_data()[0].getUrl();
String fileName(waivMessageFileData.getFile_data()[0].getName());
long fileSize(waivMessageFileData.getFile_data()[0].getSizeLong());
String previewUrl(waivMessageFileData.getFile_data()[0].getPreview_url());
if (isSendMessage) {
// 파일 발신
} else {
// 파일 수신
}
break;
}
}
}3.2.2.3채팅방 상태 이벤트 수신
@Subscribe
public void onWaivCallMessageStatusEvent(WaivCallMessageStatusEvent statusEvent) {
LogUtil.info(CALL_MSG_TAG + "onWaivCallMessageStatusEvent, call, status: " + statusEvent.getStatusText());
switch (statusEvent.getStatus()) {
case WaivCallMessageStatusEvent.STATUS_DEFAULT: {
// WebRTCLib 로그됨.
break;
}
case WaivCallMessageStatusEvent.STATUS_CONNECTING: {
// 채팅방 연결 중...
break;
}
case WaivCallMessageStatusEvent.STATUS_CONNECTED: {
// 채팅방 연결됨.
break;
}
case WaivCallMessageStatusEvent.STATUS_CLOSE: {
// 채팅방 연결 해제됨.
break;
}
}
}3.3채팅방 입장/나가기
3.3.1채팅방 입장
채탕방에 입장을 요청한다. 입장 성공은 이벤트 콜백 으로 확인 가능하다.
"2.2.1 채팅방 접속/종료 시 이벤트 수신" 에서 성공 확인 가능함니다.
kr.co.nexus.webrtclib.CustomChat public static int connect(Context context, String sipServerUrl, String sipRealm, String dn)
- sipServerUrl
접속 uri ex) ws://jedai.nexus.co.kr:8060
- sipRealm
접속 Realm ex) /jedai.nexus.co.kr
- dn
접속할 채팅방 dn
- return
0: 요청성공, 0 미만: 오류코드
Context context = getApplicationContext();
String sipServerUrl= "ws://10.10.10.1:8060";
String sipRealm = "nexus.co.kr";
String dn = "1004";
CustomChat.connect(context,
sipServerUrl,
sipRealm,
dn);3.3.2채팅방 나가기
로그 아웃 처리를 한다. 로그아웃 성공은 이벤트 콜백으로 확인 가능하다.
"2.2.1 채팅방 접속/종료 시 이벤트 수신" 에서 성공 확인 가능함니다.
kr.co.nexus.webrtclib.CustomChat public static int close()
- return
0: 요청성공, 0 미만: 오류코드
CustomChat.close();
3.4채팅
3.4.1메시지 보내기
메시지 보내기를 요청한다.
"2.2.2 채팅방 메시지 수신/발신 이벤트 수신" 에서 메시지 보내기 성공 확인 가능합니다.
kr.co.nexus.webrtclib.CustomChat public static int sendMessage(String message)
- message
상담원에게 보낼 메시지
- return
0: 요청성공, 0 미만: 오류코드
String message = "test message"; CustomChat.sendMessage(message);
3.4.2파일보내기
파일을 보내기를 요청한다.
준비중
준비중