CUSTOMER INFO 전달

openGroup을 선언할 경우 options, callback을 받도록 되어 있었습니다. options 와 callback은 CUSTOMER INFO를 위해 세팅이 필요한 부분입니다.

var group = client.openGroup(groupname, options, callback);

options에서 custevent를 true로 선언할 경우 (default는 false) 특정 Client의 그룹 오픈, CUSTOMER INFO의 변경, Client의 접속해제 등 3가지 event에 대한 정보를 그룹에서 받을 수 있게 됩니다. 채팅의 예에서 보면 채팅방에 참여하게 되면 해당 nickename을 전체 Clients에게 전송하고 해당 그룹에 참여하였음을 알려야합니다. 또한 중간에 nickname을 변경했을 경우 해당 nickname정보를 변경했음을 알려야 하고 챗방에서 나갈 경우 접속이 해제되었다는 정보도 알려야 합니다.
callback을 좀 더 자세하게 설명하면 그룹에 접속한 후 접속한 Client의 CUSTOMER INFO가 DPMessage에 저장됩니다. 그 다음 DPMessage는 저장된 CUSTOMER INFO를 모든 Client에게 전송합니다. 각각의 Client는 CUSTOMER INFO를 받은 후에 callback 함수를 호출하게 됩니다. 해당 callback이 완료 된 후 부터 group.getUserList() 함수를 통해서 전체 접속 Clients의 CUSTOMER INFO정보를 가져올 수 있게 됩니다. group.getUserList() 함수에 대한 자세한 정보는 변경된 정보 전달에서 좀 더 자세하게 설명됩니다.

채팅의 예로 opengroup을 다시 선언하면 다음과 같이 선언할 수 있습니다.

var group = client.openGroup('chat-group', {
		'custevent' : true,
		'custinfo' : {'nickname' : '홍길동'},
	}, function(data) {
		// 챗방에 접속된 유저의 목록 표현
});