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파일보내기
파일을 보내기를 요청한다.
준비중
준비중