Minitalk

Latest
6.2.0
Defined
minitalk.js
Versions
  • v6.2.0
  • v6.0.1
  • v6.0.0
  • v5.0.0
  • v4.3.0
  • v4.2.2
  • v4.2.0
  • v4.1.0
  • v4.0.0
  • v3.0.0
  • v1.0.0
  • DEPRECATED 이 기능은 문제의 소지가 있어 제거되었거나 제거될 예정입니다.
  • EXPERIMENTAL 이 기능은 최근에 도입되었고 차기버전에서 변경될 가능성이 높습니다.
  • UNSTABLE API가 안정화되는 과정에 있지만, 아직 안정적이라고 고려될만큼 충분한 테스트를 거치지 않았습니다.(합당하다면 하위호환성은 유지될 것입니다.)
  • STABLE API가 충분히 검증되었지만, 기반이 되는 코드의 정리 때문에 마이너한 변경이 있을 수 있습니다.(하위호환성이 보장됩니다.)
  • FROZEN 이 API는 광범위하게 테스트되었고, 변경될 여지가 거의 없습니다.
  • LOCKED 심각한 버그가 발견되지 않는 한 이 코드는 절대 변경되지 않습니다.
Configs
Config
Version
addToolList : Object[]
굵게, 기울임, 밑줄 등 툴바에 사용자 정의 버튼을 추가할 수 있습니다.
5.0.0
STABLE

굵게, 기울임, 밑줄 등 툴바에 사용자 정의 버튼을 추가할 수 있습니다. 툴바영역을 벗어나는 버튼에 대해서는 MORE 버튼을 통해 숨겨지고 해당 버튼을 클릭하여, 벗어나는 버튼목록을 볼 수 있습니다.


Object tool[] 의 형태로 정의되어 집니다. (예제소스 참조)


Object tool - 툴바버튼의 객체가 정의됩니다.

icon:String - 버튼아이콘의 전체경로를 정의합니다.
text:String - 버튼이름을 정의합니다.
viewText:Boolean - toolType 변수의 값이 "icon"일 때라도 버튼이름을 보일지 여부를 정의합니다. (true 일 경우 toolType 값과 관계없이, 버튼이름도 함께 출력합니다.)
fn:Function - 버튼이 클릭했을 때의 액션을 함수로서 정의합니다.


new Minitalk({
    // 생략
    addToolList:[
        {
            icon:"http://www.yourdomain.com/icon.gif",
            text:"홈페이지이동",
            viewText:true,
            fn:function(minitalk) {
                minitalk.printMessage("system","홈페이지로 이동합니다.");
                window.open("http://www.minitalk.kr");
            }
        },{
            // 생략
        }
    ],
    // 생략
});
addUserMenuList : Object[]
접속유저의 닉네임을 클릭했을 때 나타나는 유저메뉴를 추가할 수 있습니다.
5.0.0
STABLE

info 변수값 등을 활용하여, 접속유저의 닉네임을 클릭했을 때 나타나는 유저메뉴를 추가할 수 있습니다.
Object userMenu[] 형태로 배열로 등록하게 됩니다. (예제소스 참조)

Object userMenu - 하나의 메뉴에 대한 객체가 정의됩니다.

icon:String - 메뉴아이콘의 전체경로를 정의합니다.
text:String - 메뉴의 이름을 정의합니다.
viewMenu:Function - 해당메뉴가 출력되는 여부를 함수로서 정의합니다.
fn:Function - 메뉴를 클릭했을 때 액션을 함수로서 정의합니다.


new Minitalk({
	// 생략
	info:{homepage:"http://www.memberhomepage.com",email:"email@email.com"},
	addUserMenuList:[ 
		{
			icon:"http://www.yourdomain.com/homepage.gif",
			text:"유저홈페이지가기",
			viewMenu:function(minitalk,user,myinfo) {
				if (user.info.homepage) { // 홈페이지정보가 있을 때
					return true; // 이 메뉴를 보인다.
				} else {
					return false; // 정보가 없다면 메뉴를 숨긴다. 
				} 
			},
			fn:function(minitalk,user,myinfo) {
				window.open(user.info.homepage);
			} 
		},{
			// 생략 
		} 
	],
	// 생략
});
REQ channel : String
채널명을 설정합니다.
1.0.0
LOCKED

미니톡 관리자에서 생성한 채널의 이름을 설정합니다.


new Minitalk({
	channel:"example",
	// skip lines
});
encode : String
(기본값 : UTF8) 홈페이지에 사용중인 인코딩셋을 지정합니다.
4.2.2
FROZEN

개인채널등이나, 각종 미니톡 프로그램상에서 한글이 깨진다면, 이 변수값으로 홈페이지의 인코딩셋과 맞춰줄 수 있습니다.

기본값은 UTF-8 이며, 들어갈 수 있는 값은 EUC-KR, CP494, EUC-JP 등 홈페이지에서 사용중인 기본 인코딩값을 입력하시면 됩니다.


new Minitalk({
	channel:"example",
	encode:"EUC-KR",
	// skip lines
});
fontSettingHide : Boolean
(기본값 : false) 채팅글꼴 설정도구박스를 숨길지여부를 설정합니다.
6.0.0
UNSTABLE

채팅글꼴 설정도구박스를 숨길지 보일지 설정할 수 있습니다.


true : 채팅글꼴 설정도구박스를 숨깁니다.
false : 채팅글꼴 설정도구박스를 숨기지 않습니다.


new Minitalk({
	channel:"example",
	fontSettingHide:true,
	// skip lines
});
REQ height : (int or String) CHANGED 6.0.0
미니톡의 세로크기를 정의합니다.
1.0.0
STABLE

미니톡의 세로크기를 픽셀단위 또는 퍼센트(가변)단위로 정의합니다.

퍼센트단위로 입력할 경우, 반드시 따옴표( " ) 로 묶은 뒤 입력하여야 정상동작 합니다.


new Minitalk({
    channel:"example",
    height:100,
    // skip lines
});

또는,


new Minitalk({
	channel:"example",
	height:"100%",
	// skip lines
});
id : String
현재의 미니톡 객체를 가르키는 고유한 값을 설정합니다.
1.0.0
LOCKED

공용클래스에서 호출하기 위한 현재의 미니톡객체를 가르키는 고유한 값을 지정합니다.

지정하지 않을경우, 랜덤한 값으로 자동으로 지정됩니다.
한페이지에 여러개의 미니톡을 설치할 경우, 이 값은 유일하여야 합니다.


new Minitalk({
	channel:"example",
	id:"MyMinitalk-1",
	// skip lines
});
info : Object
유저에게 특정한 부가정보(회원아이디, 회원홈페이지주소 등)을 정의하여, 각종이벤트 또는 사용자정의 유저메뉴등에 활용할 수 있습니다.
6.0.0
STABLE

해당정보는 User Object 의 info 라는 이름으로 정의되어 집니다.


new Minitalk({
	channel:"example",
	// skip lines
	info:{homepage:"http://www.memberhomepage.com",email:"email@email.com"},
	addUserMenuList:[ // example for user menu 
		{
			icon:"http://www.yourdomain.com/homepage.gif",
			text:"Go User Homepage",
			viewMenu:function(minitalk,user,myinfo) {
				if (user.info.homepage) { // If homepage exist,
					return true; // show this menu
				} else {
					return false; // hide this menu. 
				} 
			},
			fn:function(minitalk,user,myinfo) {
				window.open(user.info.homepage);
			} 
		},{
			// skip lines
		} 
	], 
	listeners:{ // example for event listener
		onConnect:function(minitalk,channel,user) { 
			minitalk.printMessage("system",user.nickname+" homepage is [ "+user.info.homepage+"]");
		}
	} 
});
language : String
미니톡의 언어셋을 설정합니다.
3.0.0
LOCKED

language 변수를 통한 다국어를 지원합니다. 언어셋파일은 언어팩다운로드 메뉴에서 다운로드 받아 서버에 업로드 한 뒤 불러올 수 있습니다.

언어셋파일명의 영문 2글자가 설정값이 됩니다.


예) 한국어 : ko 영어 : en


new Minitalk({
	channel:"example",
	language:"en", // Used English
	// skip lines
});
listeners : Object
각종 이벤트핸들러를 Object 형태로 정의합니다.
4.1.0
STABLE

이벤트핸들러 종류는 이벤트부분을 참고하여 주시기 바랍니다.


new Minitalk({
	channel:"example",
	// skip lines
	listeners:{
		onConnect:function() { },
		onJoin:function() { }
	}
});
logLimit : int
(기본값 : 15) 채널에 재접속했을 경우, 이전의 대화를 몇개 출력할 것인지를 설정합니다.
4.3.0
STABLE

채널에 사용자가 있고, 페이지이동등으로 채널에 재접속하였을 경우, 최근에 이루어진 대화를 설정한 값에 따라 (0 ~ 30 사이의 값) 불러오도록 설정합니다.

단, 채널에 사용자가 아무도 없을 경우, 최근에 이루어진 대화기록은 자동으로 삭제됩니다.

0으로 설정할 경우 이전대화기록을 불러오지 않습니다.


new Minitalk({
	channel:"example",
	logLimit:30, // show 30 lines log
	// skip lines
});
nickcon : String
회원시스템과 연동된 해당회원의 이미지닉네임의 이미지 주소를 설정합니다.
1.0.0
STABLE

이미지닉네임의 이미지가 위치한 경로를 http:// 를 포함한 절대경로로 입력합니다.

회원시스템과의 연동이 필요없을 경우, 정의하지 않으시면 됩니다.
이미지닉네임을 2개이상 사용하거나(닉네임아이콘, 이미지닉네임), 특정아이콘과 함께 텍스트로 닉네임을 표현하고자 할경우 아래와 같이 콤마(,)로 구분하여 입력하시면 됩니다.


2가지 이미지를 출력할 경우


new Minitalk({
	channel:"example",
	nickcon:"http://yourdomain.com/img1.gif,http://yourdomain.com/img2.gif",
	// skip lines
});

닉아이콘과 함께 텍스트로 닉네임을 출력할 때


new Minitalk({
	channel:"example",
	nickcon:"http://yourdomain.com/img1.gif,{nickname}",
	nickname:"my nickname",
	// skip lines
});
nickname : String
회원시스템과 연동된 해당회원의 닉네임을 설정합니다.
1.0.0
LOCKED

해당 변수의 값이 있을 경우, 미니톡 접속시 회원권한을 획득하게 됩니다.

회원시스템과의 연동이 필요없을 경우, 정의하지 않으시면 됩니다.


new Minitalk({
	channel:"example",
	nickname:"My Nickname",
	// skip lines
});
opperCode : String
관리자또는 회원권한을 획득하기 위한 옵코드를 지정합니다.
5.0.0
STABLE

해당 변수에 값이 존재할 경우, 해당회원은 설정한코드의 권한을 가지게 됩니다.

특정인에게만 관리자권한을 주기 위하여, 서버스크립트 언어의 IF문등을 활용하여, 정의합니다.
해당코드의 위변조를 통한 관리자권한획득을 방지하기 위하여, 특정규칙으로 암호화하여야 합니다.


<?php
$_MINITALK_KEY = '12345678123456781234567812345678'; // 미니톡 설치시 사용했던 32자리 KEY
  
function MiniTalkEncoder($value) {
	global $_MINITALK_KEY;
	
	$padSize = 16 - (strlen($value) % 16);
	$value = $value.str_repeat(chr($padSize),$padSize);
	$output = mcrypt_encrypt(MCRYPT_RIJNDAEL_128,$_MINITALK_KEY,$value,MCRYPT_MODE_CBC,str_repeat(chr(0),16));
	return base64_encode($output);
}
  
function MiniTalkDecoder($value) {
	global $_MINITALK_KEY;
	 
	$_MINITALK_KEY = $_MINITALK_KEY ? md5($_MINITALK_KEY) : md5($_CONFIGS->key);
	$value = base64_decode($value);
	$output = mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$_MINITALK_KEY,$value,MCRYPT_MODE_CBC,str_repeat(chr(0),16));
	$valueLen = strlen($output);
	if ($valueLen % 16 > 0) return false;

	$padSize = ord($output{$valueLen - 1});
	if (($padSize < 1) || ($padSize > 16)) return false;

	for ($i=0;$i<$padSize;$i++) {
		if (ord($output{$valueLen - $i - 1}) != $padSize) return false;
	}
	
	return substr($output,0,$valueLen - $padSize);
}
  
function GetOpperCode($opper) {
	$value = json_encode(array('opper'=>$opper,'ip'=>$_SERVER['REMOTE_ADDR']));
	return urlencode(MiniTalkEncoder($value));
}
?>

PHP의 경우 위와 같은 방법으로 GetOpperCode 함수를 정의하여 사용하면 되며, 다른 언어의 경우에도 같은 암호화기법으로 정의하시면 됩니다.
특정언어에 대하여, 관리자코드를 생성하는 방법을 잘 모르실 경우, 문의게시판을 통해 문의하여 주시기 바랍니다.
관리자코드는 JavaScript나 Html으로는 만들 수 없으므로, 서버스크립트가 지원되지 않는 곳에서는 이 방법으로 관리자권한을 획득할 수 없습니다.


new Minitalk({
	channel:"example",
	<?php if ($isAdmin == true) { // For Administator ?>
	opperCode:"<?php echo GetOpperCode('ADMIN'); ?>",
	<?php } elseif ($isMember == true) { // For member ?>
	opperCode:"<?php echo GetOpperCode('MEMBER'); ?>",
	<?php } ?>
	// skip lines
}); 
plugin : (String or Array)
(기본값 : ALL) 사용할 플러그인을 지정합니다.
6.0.0
EXPERIMENTAL

설치된 플러그인중 사용할 플러그인을 배열로 지정을 하거나, 전부 사용 또는 전부 미사용하길 원한다면 아래의 키워드로 정의하세요.


ALL : 설치된 모든 플러그인사용
NONE : 플러그인 비활성화
또는 사용할 플러그인을 배열로 선택 배열에 들어가는 플러그인명은 plugin 폴더내의 각각의 플러그인들의 폴더명입니다.


전체 플러그인을 사용하고자 할 경우


new Minitalk({
	channel:"example",
	plugin:"ALL",
	// skip lines
});

일부 플러그인만 사용하고자 할 경우


new Minitalk({
	channel:"example",
	plugin:["googleSearch","chatHelper"], // used googleSearch & chatHelper plugin
	// skip lines
});

모든 플러그인을 사용하지 않을 경우


new Minitalk({
	channel:"example",
	plugin:"NONE",
	// skip lines
});
position : String
(기본값 : default) 미니톡이 출력되는 위치를 정합니다.
6.0.0
EXPERIMENTAL

default : 스크립트가 있는 위치에 정해진 width, height 크기로 미니톡을 출력합니다.


그 외 아래 값으로 지정한 경우, 미니톡이 홈페이지 UI에 영향을 미치지 않고, 브라우져의 특정위치에 고정되어 스크롤바를 따라다닙니다.
유저가 미니톡 타이틀바를 클릭하면 채팅영역이 나타났다가, 미니톡 이외의 영역을 마우스클릭하면 다시 숨겨집니다.
(예제 미리보기 참조)

TL : 상단좌측에 미니톡에 타이틀바만 나타난채로 스크롤에 고정됩니다.
TR : 상단우측에 미니톡에 타이틀바만 나타난채로 스크롤에 고정됩니다.
BL : 하단좌측에 미니톡에 타이틀바만 나타난채로 스크롤에 고정됩니다.
BR : 하단우측에 미니톡에 타이틀바만 나타난채로 스크롤에 고정됩니다.


new Minitalk({
	channel:"example",
	position:"TL", // fixed position on top left
	// skip lines
});
positionOption : Object
position옵션을 default 가 아닌 다른 옵션으로 사용시 추가할 수 있는 옵션사항들입니다.
6.0.1
EXPERIMENTAL

position옵션을 TL, TR, BL, BR 으로 사용시 부가적인 옵션을 정의합니다.


Object positionOption

Boolean autoShow : 미니톡이 로드될때 숨겨진 상태가 아닌 확장된 상태로 보이게 합니다. (기본값 : false)

Boolean autoHide : 미니톡이 확장된 상태일때, 미니톡영역이 아닌 다른영역을 클릭시 자동으로 숨겨지도록 합니다. (기본값 true)

Boolean saveStatus : 미니톡의 숨김/확장상태를 기억하여 페이지를 새로고침하거나 다른페이지로 이동할 때 해당상태를 유지합니다. (IE8이하버전에서는 동작하지 않음) (기본값 : true)

int defaultHeight : 숨김상태일때 보일 높이값을 지정합니다. 미니톡 스킨의 타이틀영역만큼이 적당합니다. (기본값 26)

Boolean showCloseButton : 별도로 닫기버튼을 보입니다. (기본값 : true)

String closeButtonImage : 닫기버튼 이미지전체경로 (기본값 : 미니톡폴더/images/close.png)

int closeButtonWidth : 닫기버튼 이미지 가로크기 (기본값 : 24)

int closeButtonHeight : 닫기버튼 이미지 세로크기 (기본값 : 24)


new MiniTalk({
	channel:"example",
	position:"BR", // fixed position on bottom right
	positionOption:{
		autoShow:false,
		autoHide:ture,
		saveStatus:true,
		defaultHeight:26,
		showCloseButton:true,
		closeButtonWidth:24,
		closeButtonHeight:24
	},
	// skip lines
});
protocols : Object
사용자 정의 프로토콜 리스너를 지정합니다.
6.0.0
EXPERIMENTAL

SendProtocol() 메소드를 이용해 전달되어지는 사용자 정의 프로토콜에 대한 이벤트리스너를 정의합니다.


Object

KEY : 프로토콜의 명칭입니다. SendProtocol() 메소드에서 보내는 프로토콜명

VALUE : 이벤트리스너 함수입니다. 미니톡과 프로토콜로 전달되는 데이터객체가 전달됩니다.


플러그인 또는 스킨 등 미니톡 외부에서 사용자정의 프로토콜 전송


// m is minitalk global value
m.sendProtocol("newpost",{nickname:"MyNickame",title:"This is Post Title."});
// Check "newpost" protocols on next example.

미니톡 내부에서 사용자정의 프로토콜 전송


new Minitalk({
	channel:"example",
	listeners:{
		onConnect:function(minitalk,channel,user) {
			// You can send custom protocol on event listeners
			minitalk.sendProtocol("sayhi",{nickname:user.nickname});
		}
	},
	protocols:{
		newpost:function(minitalk,data) {
			minitalk.printMessage("system",data.nickname+" posted ["+data.title+"]");
			// result : MyNickname posted [This is Post Title]
		},
		sayhi:function(minitalk,data) {
			minitalk.printMessage("system",data.nickname+" said Hi!");
		}
	},
	// skip lines
});
showChannelConnectMessage : Boolean
(기본값 : true) 채널접속시 채널명과 함께 접속메세지를 보일지 설정합니다.
6.0.1
EXPERIMENTAL

채널접속시 채널명과 함께 접속메세지를 보일지 설정합니다. 접속하고자 하는 채널명을 숨기고자 한다면, false 로 지정합니다.


new Minitalk({
	channel:"example",
	showChannelConnectMessage:false, // You can't see connect message.
	// skip lines
});
REQ skin : String
(기본값 : default) 미니톡의 스킨코드를 설정합니다.
1.0.0
LOCKED

미니톡의 스킨코드를 정의합니다. 미니톡 스킨은 스킨다운로드 메뉴에서 가능하며, 스킨의 폴더명이 스킨명이 됩니다.


new Minitalk({
	channel:"example",
	skin:"kakaotalk", // Used kakaotalk skin
	// skip lines
});
splitString : String
(기본값 : ":") 채팅내용에서 닉네임과 대화내용을 구분하는 문자열을 지정합니다.
4.1.0
UNSTABLE

채팅내용에서 닉네임과 대화내용을 구분하는 문자열을 지정합니다. 이 문자열을 이용하여 채팅내용을 구분합니다.


new Minitalk({
	channel:"example",
	splitString:" said, ",
	// skip lines
});

기본 :

SomeUser : Some Talk;


위의 예제를 적용할 경우 :

SomeUser said, Some Talk

statusIconPath : String
상태아이콘이 위치한 경로를 지정합니다.
6.0.0
UNSTABLE

미니톡의 상태아이콘(온라인, 자리비움, 다른용무중 등)의 경로를 지정합니다.

경로는 미니톡이 설치된 경로로부터 상대경로 또는 절대경로를 입력합니다.

해당경로에는 반드시 모든 디바이스별(PC, Android, iOS) 폴더내에 상태에 대한 아이콘이 다음과 같은 이름으로 존재하여야 합니다.


온라인 : online.png

오프라인 : offline.png

자리비움 : away.png

추모 : pray.png

다른용무중 : otherwork.png

삽질중 : working.png


new Minitalk({
	channel:"example",
	statusIconPath:"http://yourdomain.com/minitalk/images/status", // removed last slash("/")
	// skip lines
});
toolType : String
(기본값 : "icon") 툴바의 버튼의 형태를 정의합니다.
4.1.0
UNSTABLE

굵게, 기울임, 밑줄 등 툴바의 버튼의 형태를 정의합니다.


icon : 버튼의 아이콘만 표시합니다.

text : 버튼의 이름만 출력합니다. (굵게, 기울임, 밑줄 등)

icontext : 버튼의 아이콘과 함께 이름을 출력합니다.


new Minitalk({
	channel:"example",
	toolType:"icontext", // tool icon with button text
	// skip lines
});
REQ type : String CHANGED 6.0.0
미니톡의 가로형태, 세로형태를 정의합니다.
1.0.0
STABLE

미니톡의 형태를 결정합니다.

세로형은 접속자목록이 채팅내용 위에 표시되며 가로형은 접속자목록이 채팅내용 우측(또는 스킨에 따라 좌측)에 위치하게 됩니다.


horizontal : 가로형으로 설정합니다.

vertical : 세로형으로 설정합니다.

auto : 미니톡의 크기에 따라 자동으로 형태가 설정됩니다.


new Minitalk({
    channel:"minitalk",
    type:"horizontal", // Horizontal style
    // skip lines
});
userListHeight : int
(기본값 : 100) 유저목록의 세로높이
6.0.0
UNSTABLE

유저목록 세로높이는 type이 vertical로 지정되었을 때 유저목록리스트의 세로폭을 지정합니다.

이 값은 %로 지정되지 않으므로 반드시 픽셀단위의 int 형식으로 지정하세요.


new Minitalk({
	channel:"example",
	type:"vertical",
	userListHeight:100,
	// skip lines
});
userListWidth : int
(기본값 : 160) 유저목록 가로넓이
6.0.0
UNSTABLE

유저목록 가로넓이는 type이 horizontal로 지정되었을 때 유저목록리스트의 가로폭을 지정합니다.

이 값은 %로 지정되지 않으므로 반드시 픽셀단위의 int 형식으로 지정하세요.


new Minitalk({
	channel:"example",
	type:"horizontal",
	userListWidth:200,
	// skip lines
});
viewAlert : Boolean
(기본값 : true) 유저의 채널접속/접속종료 메세지를 보일 것인지 설정합니다.
5.0.0
STABLE

유저의 채널접속/접속종료 메세지를 보일 것인지 설정합니다.

기본적으로 true 로 설정되어 있으며, alertLimit 변수값에 의해 메세지를 출력할 유저의 권한을 정의합니다.


true : 채널접속/접속종료 메세지를 보임

false : alertLimit 변수와 무관하게 채널접속/접속종료 메세지를 보이지 않음

viewAlertLimit : String
(기본값 : ALL) 유저의 접속/접속종료 메세지를 출력할 권한을 지정합니다.
5.0.0
STABLE

유저의 접속/종료 메세지를 특정권한이상의 유저의 접속/접속종료시에게만 나타나도록 설정합니다.

동시접속자가 많을 경우, 또는 특정유저만 알림메세지를 나타내길 원하는 경우 아래의 5가지 권한을 지정할 수 있습니다.


NONE : 아무도 표시하지 않습니다.

ADMIN : 관리자권한만 접속/접속종료 메세지를 보이게 설정합니다.

MEMBER : 회원권한이상만 접속/접속종료 메세지를 보이게 설정합니다.

NICKGUEST : 닉네임을 지정한 모든유저를 접속/접속종료 메세지를 보이게 설정합니다.

ALL : 닉네임이 없는 모든 유저를 포함한 유저전체의 접속/접속종료 메세지를 보이게 설정합니다.

viewStatusIcon : Boolean
(기본값:true) 미니톡의 상태아이콘 표시여부를 설정합니다.
4.3.0
EXPERIMENTAL

온라인, 자리비움, 다른용무중 등 미니톡의 상태아이콘이 유저목록에 나타나는 것을 설정할 수 있습니다.


true : 상태아이콘을 보임

false : 상태아이콘을 숨김

viewUser : Boolean
(기본값 : true) 접속자목록을 기본적으로 보일 것인지 숨길 것인지 여부를 결정합니다.
4.0.0
FROZEN

true 로 설정될 경우 접속시 기본적으로 현재 접속자목록을 출력합니다.

false 일 경우 접속시 기본적으로 현재 접속자목록이 숨겨지지만, 유저목록보기 버튼을 클릭하여, 유저목록을 보이게 할 수 있습니다.

100명 이상 접속할 경우, viewUser 값이 true 일지라도 자동적으로 접속자목록이 숨겨지게 됩니다.

유저목록을 기본적으로 출력하지 않을 경우, 시스템 성능에 따라 체감적으로 성능이 향상될 수 있습니다.

viewUserLimit : String
(기본값 : ALL) 유저목록에 표시할 유저의 권한을 설정합니다.
6.0.0
STABLE

동시접속자가 많을 경우, 또는 특정유저만 유저목록에 나타내길 원하는 경우 아래의 4가지 권한을 지정할 수 있습니다.


ADMIN : 유저목록에 관리자권한만 보이게 설정합니다.

MEMBER : 유저목록에 회원권한이상만 보이게 설정합니다.

NICKGUEST : 유저목록에 닉네임을 지정한 모든유저를 보이게 설정합니다.

ALL : 닉네임이 없는 모든 유저를 포함한 유저전체목록을 보이게 설정합니다.

REQ width : (int or String) CHANGED 6.0.0
미니톡의 가로크기를 정의합니다.
1.0.0
STABLE

미니톡의 가로크기를 픽셀단위 또는 퍼센트(가변)단위로 정의합니다.

퍼센트단위로 입력할 경우, 반드시 따옴표( " ) 로 묶은 뒤 입력하여야 정상동작 합니다.


new Minitalk({
	channel:"example",
	height:200,
	// skip lines
});

또는,


new Minitalk({
	channel:"example",
	height:"100%",
	// skip lines
});
Globals
Method
Version
m : Minitalk
플러그인/스킨등 외부 스크립트에서 m 을 이용하여 미니톡 객체에 접근할 수 있습니다.
6.0.0
EXPERIMENTAL

미니톡 환경설정 스크립트 밖에서 미니톡을 호출하고자 할때, 사용할 수 있습니다.


m.printMessage("system","미니톡 외부에서 미니톡 메소드를 호출합니다.");
Methods
Method
Version
addEvent(String eventName, Function Listeners) : void
이벤트 리스너를 추가합니다.
4.0.0
STABLE

플러그인이나 스킨등에서 이벤트리스너 추가가 필요할 때 사용합니다.


String eventName : onConnect 와 같은 이벤트명입니다. 이벤트명은 이벤트API문서를 참고하여 주십시오.

Function Listeners : 해당 이벤트에 대한 이벤트리스너 함수입니다. 함수 매개변수는 이벤트API문서를 참고하여 주십시오.


m.addEvent("onInit",function(minitalk) {
	minitalk.printSystem("system","Minitalk init!");
});
addProtocol(String key, Function protocol) : void
사용자정의 프토토콜 이벤트리스너를 추가합니다.
6.0.0
EXPERIMENTAL

SendProtocol() 메소드를 이용해 전달되어지는 사용자 정의 프로토콜에 대한 이벤트리스너를 정의합니다.


String key : 프로토콜의 명칭입니다. SendProtocol() 메소드에서 보내는 프로토콜명

Function protocol : 이벤트리스너 함수입니다. 미니톡과 프로토콜로 전달되는 데이터객체가 전달됩니다.


플러그인 또는 스킨에서 사용자정의 프로토콜 전송


// m 객체를 사용하여 미니톡 메소드에 접근
m.sendProtocol("newpost",{nickname:"알쯔",title:"새로운 게시물입니다."});

// m 객체를 사용하여 미니톡 메소드에 접근
m.addProtocol("newpost",function(minitalk,data) {
	minitalk.printMessage("system",data.nickname+"님이 "+data.title+"게시물을 등록하였습니다.");
});
addTool(Object tool) : void
툴바에 버튼을 추가합니다.
4.0.0
STABLE

Object tool - 툴바버튼의 객체가 정의됩니다.

icon:String - 버튼아이콘의 전체경로를 정의합니다.
text:String - 버튼이름을 정의합니다.
viewText:Boolean - toolType 변수의 값이 "icon"일 때라도 버튼이름을 보일지 여부를 정의합니다. (true 일 경우 toolType 값과 관계없이, 버튼이름도 함께 출력합니다.)
fn:Function - 버튼이 클릭했을 때의 액션을 함수로서 정의합니다.


// m 객체로 미니톡 메소드를 호출
m.addTool{
	icon:"http://www.yourdomain.com/icon.gif",
	text:"홈페이지이동",
	viewText:true,
	fn:function(minitalk) {
		minitalk.printMessage("system","홈페이지로 이동합니다.");
		window.open("http://www.minitalk.kr");
	}
});
addUserInfo(String key, Object value) : void
사용자의 info 값에 특정값을 추가합니다.
6.0.0
STABLE

유저에게 특정한 부가정보를 추가하여 각종이벤트에 활용할 수 있습니다.

해당정보는 User Object 의 info 라는 이름으로 정의되어 집니다.


// 미니톡객체 m 을 호출하여 내부메소드에 접근
m.addUserInfo("homepage","http://www.myhomepage.com");
m.addUserMenu({
    icon:"http://www.yourdomain.com/homepage.gif",
    text:"유저홈페이지가기",
    viewMenu:function(minitalk,user,myinfo) {
        if (user.info.homepage) { // 홈페이지정보가 있을 때
            return true; // 이 메뉴를 보인다.
        } else {
            return false; // 정보가 없다면 메뉴를 숨긴다. 
        } 
    },
    fn:function(minitalk,user,myinfo) {
        window.open(user.info.homepage);
    } 
});  // 미니톡객체 m 을 호출하여 내부메소드에 접근
  
m.addEvent("onConnect",function(minitalk,channel,user) { 
    minitalk.printMessage("system",user.nickname+"님의 홈페이지는 "+user.info.homepage+"입니다.");
});  // 미니톡객체 m 을 호출하여 내부메소드에 접근
addUserMenu(Object usermenu) : void
사용자정의 유저메뉴를 추가합니다.
4.0.0
STABLE

유저메뉴에 사용자정의 메뉴를 추가할 수 있습니다.


// 미니톡객체 m 을 호출하여 내부메소드에 접근
m.addUserInfo("homepage","http://www.myhomepage.com");
  
m.addUserMenu({
    icon:"http://www.yourdomain.com/homepage.gif",
    text:"유저홈페이지가기",
    viewMenu:function(minitalk,user,myinfo) {
        if (user.info.homepage) { // 홈페이지정보가 있을 때
            return true; // 이 메뉴를 보인다.
        } else {
            return false; // 정보가 없다면 메뉴를 숨긴다. 
        } 
    },
    fn:function(minitalk,user,myinfo) {
        window.open(user.info.homepage);
    } 
});  // 미니톡객체 m 을 호출하여 내부메소드에 접근
  
m.addEvent("onConnect",function(minitalk,channel,user) { 
    minitalk.printMessage("system",user.nickname+"님의 홈페이지는 "+user.info.homepage+"입니다.");
});  // 미니톡객체 m 을 호출하여 내부메소드에 접근
decodeBase64(String cipherText) : String
Base64 암호문을 평문으로 복호화합니다.
5.0.0
LOCKED

String cipherText : Base64 암호문


// m 객체를 사용하여 미니톡 메소드를 호출
var plainText = m.encodeBase64("aGVsbG8gd29ybGQ=");
disconnect([Boolean isReconnect]) : void CHANGED 6.2.0
서버접속을 종료합니다.
4.0.0
EXPERIMENTAL

Boolean isRecconect : 재접속허용여부 (true : 재접속 / false : 재접속하지 않음)


서버접속 종료 후 자동으로 재접속을 하지 않기를 원하는 경우 setReconnect() 메소드를 이용하여 자동재접속을 끈 뒤 사용하시거나, 매개변수를 통해 설정할 수 있습니다.


// m 객체를 사용하여 미니톡 메소드에 접근
m.setReconnect(false); // 접속종료 후 자동으로 재접속하지 않음
m.disconnect();

// 매개변수를 사용하여 재접속하지 않게 접속종료
m.disconnect(false);
encodeBase64(String plainText) : String
문자열을 Base64로 인코딩합니다.
5.0.0
LOCKED

String plainText : 평문


// m 객체를 사용하여 미니톡 메소드를 호출
var cipherText = m.encodeBase64("Hello World!");
getStorage(String key) : Object
임시 저장소에 저장한 데이터를 가져옵니다.
6.0.0
EXPERIMENTAL

setStorage() 메소드로 저장한 데이터를 가져옵니다.


String key : 데이터 key (setStorage() 메소드에서 지정한 값)


// m 객체를 이용 미니톡 메소드에 접근
m.setStorage("myData",{"name":"minitalk"});
var mydata = m.getStorage("myData");
playSound(String sound) : void
호출음을 재생합니다.
1.0.0
STABLE

String sound 에 지정된 호출음을 재생합니다.

sound 에 지정된 명칭은 미니톡이 설치된 경로의 sound 폴더안의 사운드리소스의 확장자를 제외한 파일명입니다.
sound 폴더에 직접 사운드리소스파일을 추가하여 사용할 수도 있습니다. 다만 사용자가 직접 사운드 리소스를 추가할때 ogg 확장자와 mp3확장자를 동시에 추가하여 주어야 합니다.


new Minitalk({
    listeners:{
        onConnect:function(minitalk) {
            // sound폴더내 IRCCALL.mp3 / IRCCALL.ogg 파일 2개가 모두 존재해야합니다.
            minitalk.playSound("IRCCALL");
        }
    },
    // 생략 
});
printMessage(String type, String msg) : void
채팅창에 메세지를 출력합니다.
4.0.0
STABLE

이벤트리스너나 특정상황에서 채팅창에 시스템메세지를 출력해야할 경우 사용합니다.


String type : 메세지 종류

system : 시스템 메세지 (기본스킨에서 초록색 메세지)
plugin : 플러그인 메세지 (기본스킨에서 보라색 메세지)
error : 에러 메세지 (기본스킨에서 빨간색 메세지)


플러그인이나 스킨등에서 사용


// m 객체를 사용하여 미니톡 메소드에 접근
m.printMessage("system","시스템 메세지를 출력합니다.");

이벤트리스너 또는 사용자정의 프로토콜 등에서 사용


new Minitalk({
    id:"example",
    listeners:{
        onConnect:function(minitalk) {
            minitalk.printMessage("system","미니톡 채널에 접속하신 것을 환영합니다.");
            // 사용자 정의 프로토콜 전송
            minitalk.sendProtocol("myprotocol",{message:"안녕하세요"});
        }
    },
    protocols:{
        myprotocol:function(minitalk,data) {
            minitalk.printMessage("plugin",data.noticeMessage);
        }
    }
});
sendMessage(String message, Boolean isRaw) : void CHANGED 6.0.0
채팅 메세지를 전송합니다.
4.0.0
STABLE

미니톡 서버로 유저가 마치 대화를 하는 것처럼, 메세지를 보낼 수 있습니다. message 변수가 비어있을 경우, 대화내용입력란의 메세지가 전송됩니다.


String message : 전송할 메세지

Boolean isRaw : true 일 경우 이벤트리스너를 무시하며, 메세지 가공을 하지 않습니다.


// m 객체를 이용하여 미니톡 메소드에 접근
m.sendMessage("서버로 전송할 메세지",false);
sendProtocol(String protocol, Object data, [String channel], [String nickname]) : void
사용자정의 프로토콜 메세지를 전송합니다.
6.0.0
EXPERIMENTAL

protocols Property 를 지정하거나, addProtocol() 메소드를 이용하여 사용자정의 프로토콜 이벤트리스너를 정의한 뒤 사용해야 합니다.


String protocol : 프로토콜 이름 (이벤트리스너를 해당 이름으로 정의합니다.)

Object data : 전달을 원하는 데이터로 데이터형식은 모든 형식(배열, 객체, 정수, 문자열 등)이 가능합니다.
String channel : 전달하고자 하는 채널명 (옵션, 미입력시 자기자신이 참여중인 채널)
String nickname : 전달하고자 하는 유저닉네임 (옵션, 미입력시 전체유저에게 전송)


플러그인 또는 스킨에서 사용자정의 프로토콜 전송


// m 객체를 사용하여 미니톡 메소드에 접근
m.sendProtocol("newpost",{nickname:"알쯔",title:"새로운 게시물입니다."});

미니톡 내부에서 전송


new Minitalk({
    // 생략
    listeners:{
        onConnect:function(minitalk,channel,user) {
            // 이벤트 리스너등에서 사용자정의 프로토콜 전송
            minitalk.sendProtocol("sayhi",{nickname:user.nickname});
        }
    },
    protocols:{
        newpost:function(minitalk,data) { // 플러그인 또는 스킨에서 사용자정의 프로토콜 전송에 따른 이벤트리스너
            minitalk.printMessage("system",data.nickname+"님이 "+data.title+"게시물을 등록하였습니다.");
        },
        sayhi:function(minitalk,data) { // 이벤트 리스너등에서 사용자정의 프로토콜 전송에 따른 이벤트리스너
            minitalk.printMessage("system",data.nickname+"님이 반갑다고 인사를 합니다.");
        }
    }
});
setReconnect(Boolean isReconnect) : void
서버접속이 끊어졌을 때 자동으로 재접속을 시도할지 지정합니다.
5.0.0
EXPERIMENTAL
// m 객체를 사용하여 미니톡 메소드에 접근
m.setReconnect(true); // 자동 재접속을 합니다.
m.setReconnect(false); // 자동으로 재접속하지 않습니다.
setStorage(String key, Object data) : void
임시저장소에 데이터를 저장합니다.
6.0.0
EXPERIMENTAL

브라우져가 종료되기전까지 데이터를 저장합니다.


String key : 데이터에 접근하기 위한 key (getStorage() 메소드에서 이용)
Object data : 저장하고자 하는 데이터 (용량제한없음, 종류제한없음 - String, Array, Object, Boolean, Int 등)


// m 객체를 이용 미니톡 메소드에 접근
m.setStorage("myData",{"name":"minitalk"});
var mydata = m.getStorage("myData");
showNotice(String msg, [String url]) : void
공지사항 레이어를 띄워, 채널참여자에게 공지사항을 전달합니다.
5.0.0
STABLE

공지사항 레이어를 나타냅니다.


String msg : 공지사항 레이어에 나타날 메세지내용
String url : (옵션) 공지사항 레이어를 클릭시 이동할 주소


플러그인이나 스킨등에서 사용


// m 객체를 사용하여 미니톡 메소드에 접근
m.showNotice("미니톡에 오신것을 환영합니다.","http://www.minitalk.kr");

이벤트리스너 또는 사용자정의 프로토콜 등에서 사용


new Minitalk({
    id:"example",
    listeners:{
        onConnect:function(minitalk) {
            minitalk.showNotice("미니톡 채널에 접속하신 것을 환영합니다.");
            // 사용자 정의 프로토콜 전송
            minitalk.sendProtocol("myprotocol",{message:"안녕하세요"});
        }
    },
    protocols:{
        myprotocol:function(minitalk,data) {
            minitalk.showNotice(data.noticeMessage);
        }
    }
});
Events
Method
Version
beforeCall(Minitalk this, Object sender, Object user)
누군가에게 호출을 받기 직전에 발생합니다. 해당 이벤트함수의 Return값에 따라 호출이벤트를 막을 수 있습니다.
4.0.0
STABLE

해당 이벤트리스너의 값이 true 일 경우 메세지를 전송하며, false 일 경우 호출이벤트를 무시합니다.

아래의 예제소스를 참고하시기 바랍니다.

Minitalk this : 이벤트가 발생한 객체

Object sender : 호출한 유저 객체

sender.nickname:String - 유저의 닉네임
sender.nickcon:String - 유저의 닉이미지경로
sender.status:String - 유저의 상태
sender.device:String - 유저의 접속디바이스
sender.info:Object - 유저의 부가정보

Object user : 호출를 받는 유저 객체

user.nickname:String - 유저의 닉네임
user.nickcon:String - 유저의 닉이미지경로
user.status:String - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:Object - 유저의 부가정보


new Minitalk({
    // 생략
    listeners:{
        beforeCall:function(minitalk,sender,user) {
            if (sender.nickname == "바보") {
                minitalk.printMessage("system",sender.nickname+"님이 호출하였으나, 자동으로 무시하였습니다.");
                return false; // 호출 이벤트를 발생시키지 않음
            } else {
                return true; // 호출 이벤트를 발생시킴
            }
        }
    }
});
beforeInvite(Minitalk this, Object sender, String code, Object user)
개인채널에 초대를 받기 직전에 발생합니다. 해당 이벤트함수의 Return값에 따라 개인채널 초대이벤트를 막을 수 있습니다.
4.0.0
STABLE

해당 이벤트리스너의 값이 true 일 경우 메세지를 전송하며, false 일 경우 개인채널 초대이벤트를 무시합니다.

아래의 예제소스를 참고하시기 바랍니다.

Minitalk this : 이벤트가 발생한 객체

Object sender : 초대한 유저 객체

sender.nickname:String - 유저의 닉네임
sender.nickcon:String - 유저의 닉이미지경로
sender.status:String - 유저의 상태
sender.device:String - 유저의 접속디바이스
sender.info:Object - 유저의 부가정보


String code : 개인채널의 고유코드값


Object user : 초대를 받는 유저 객체

user.nickname:String - 유저의 닉네임
user.nickcon:String - 유저의 닉이미지경로
user.status:String - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:Object - 유저의 부가정보


new Minitalk({
    // 생략
    listeners:{
        beforeInvite:function(minitalk,sender,code,user) {
            if (sender.nickname == "바보") {
                minitalk.printMessage("system",sender.nickname+"님이 개인채널에 초대하였으나, 자동으로 무시하였습니다.");
                return false; // 개인채널 초대 이벤트를 발생시키지 않음
            } else {
                return true; // 개인채널 초대 이벤트를 발생시킴
            }
        } 
    }
});
beforeMessage(Minitalk this, Object sender, String msg, int time)
메세지가 수신되기 직전에 발생합니다. 해당 이벤트함수의 Return값에 따라 메세지 수신이벤트를 막을 수 있습니다.
4.0.0
STABLE

해당 이벤트리스너의 값이 true 일 경우 메세지를 전송하며, false 일 경우 메세지 수신이벤트를 무시합니다.

아래의 예제소스를 참고하시기 바랍니다.

Minitalk this : 이벤트가 발생한 객체


Object sender : 메세지를 전송한 유저객체

user.nickname:String - 유저의 닉네임
user.nickcon:String - 유저의 닉이미지경로
user.status:string - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:String - 유저의 부가정보


String msg : 전송되어진 메세지


int time : 메세지가 전송된 시각 (unixtime)


new Minitalk({
    // 생략
    listeners:{
        beforeMessage:function(minitalk,sender,msg,time) {
            if (minitalk.getTime(time,"time").indexOf("20") == 0) {
                minitalk.printMessage("system","20시에 전송되어온 메세지를 자동으로 무시하였습니다.");
                return false; // 메세지 수신 이벤트를 발생시키지 않음
            } else {
                return true; // 메시지 수신 이벤트를 발생시킴
            }
        }
    }
});
beforeSendCall(Minitalk this, String receiver, Object user)
유저가 상대방을 호출하기 직전에 발생합니다. 해당 이벤트함수의 Return값에 따라 호출을 막을 수 있습니다.
4.1.0
STABLE

해당 이벤트리스너의 값이 true 일 경우 상대방을 호출하며, false 일 경우 상대방을 호출하지 않습니다.

아래의 예제소스를 참고하시기 바랍니다.


Minitalk this : 이벤트가 발생한 객체


String receiver : 호출을 받을 상대방


Object user : 호출을 시도하는 유저객체

user.nickname:String - 유저의 닉네임
user.nickcon:String - 유저의 닉이미지경로
user.status:String - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:Object - 유저의 부가정보


new Minitalk({
    // 생략
    listeners:{
        beforeSendCall:function(minitalk,receiver,user) {
            if (receiver == "바보") {
                alert("바보님은 호출할 수 없습니다.");
                return false; // 호출을 하지 않음
            } else {
                return true; // 호출을 함
            }
        } 
    }
});
beforeSendInvite(Minitalk this, String receiver, Object user)
유저가 개인채널에 초대하기 직전에 발생합니다. 해당 이벤트함수의 Return값에 따라 호출을 막을 수 있습니다.
4.1.0
STABLE

해당 이벤트리스너의 값이 true 일 경우 상대방을 호출하며, false 일 경우 상대방을 호출하지 않습니다.

아래의 예제소스를 참고하시기 바랍니다.


Minitalk this : 이벤트가 발생한 객체


String receiver : 개인채널 초대를 받을 상대방


Object user : 초대를 시도하는 유저객체

user.nickname:String - 유저의 닉네임
user.nickcon:String - 유저의 닉이미지경로
user.status:String - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:Object - 유저의 부가정보


new Minitalk({
    // 생략
    listeners:{
        beforeSendInvite:function(minitalk,receiver,user) {
            if (receiver == "바보") {
                alert("바보님은 개인채널에 초대할 수 없습니다.");
                return false; // 초대 하지 않음
            } else {
                return true; // 초대 함
            }
        } 
    }
});
beforeSendMessage(Minitalk this, String msg, Object user)
유저가 메세지를 전송하기 직전에 발생합니다. 해당 이벤트함수의 Return값에 따라 메세지 전송을 막을 수 있습니다.
4.1.0
STABLE

해당 이벤트리스너의 값이 true 일 경우 메세지를 전송하며, false 일 경우 메세지를 전송하지 않습니다.

아래의 예제소스를 참고하시기 바랍니다.


Minitalk this : 이벤트가 발생한 객체


String msg : 유저가 입력한 메세지


Object user : 메세지를 전송을 시도하는 유저객체

user.nickname:String - 유저의 닉네임
user.nickcon:String - 유저의 닉이미지경로
user.status:String - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:Object - 유저의 부가정보


new Minitalk({
    // 생략
    listeners:{
        beforeSendMessage:function(minitalk,msg,user) {
            if (msg == "바보") {
                alert(user.nickname+"님 욕설은 입력할 수 없습니다.");
                return false; // 메세지를 서버로 전송하지 않음
            } else {
                return true; // 메세지를 서버로 전송함
            }
        } 
    }
});
beforeSendWhisper(Minitalk this, String receiver, String msg, Object user)
유저가 귓속말을 전송하기 직전에 발생합니다. 해당 이벤트함수의 Return값에 따라 귓속말 전송을 막을 수 있습니다.
4.1.0
STABLE

해당 이벤트리스너의 값이 true 일 경우 메세지를 전송하며, false 일 경우 메세지를 전송하지 않습니다.

아래의 예제소스를 참고하시기 바랍니다.

Minitalk this : 이벤트가 발생한 객체


String receiver : 귓속말을 받을 사람 닉네임


String msg : 유저가 입력한 메세지


Object user : 귓속말 전송을 시도하는 유저객체

user.nickname:String - 유저의 닉네임
user.nickcon:String - 유저의 닉이미지경로
user.status:String - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:Object - 유저의 부가정보


new Minitalk({
    // 생략
    listeners:{
        beforeSendWhisper:function(minitalk,receiver,msg,user) {
            if (msg == "바보") {
                alert(user.nickname+"님! "+receiver+"님에게 귓속말로 욕설은 입력할 수 없습니다.");
                return false; // 메세지를 서버로 전송하지 않음
            } else {
                return true; // 메세지를 서버로 전송함
            }
        } 
    }
});
beforeWhisper(Minitalk this, Object sender, String msg, int time)
귓속말이 수신되기 직전에 발생합니다. 해당 이벤트함수의 Return값에 따라 귓속말 수신이벤트를 막을 수 있습니다.
4.1.0
STABLE

해당 이벤트리스너의 값이 true 일 경우 메세지를 전송하며, false 일 경우 귓속말 수신이벤트를 무시합니다.

아래의 예제소스를 참고하시기 바랍니다.


Minitalk this : 이벤트가 발생한 객체


Object sender : 메세지를 전송한 유저객체

user.nickname:String - 유저의 닉네임
user.nickcon:String - 유저의 닉이미지경로
user.status:string - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:String - 유저의 부가정보

String msg : 전송되어진 메세지


int time : 메세지가 전송된 시각 (unixtime)


new Minitalk({
    // 생략
    listeners:{
        beforeWhisper:function(minitalk,sender,msg,time) {
            if (minitalk.getTime(time,"time").indexOf("20") == 0) {
                minitalk.printMessage("system","20시에 전송되어온 귓속말을 자동으로 무시하였습니다.");
                return false; // 귓속말 수신 이벤트를 발생시키지 않음
            } else {
                return true; // 귓속말 수신 이벤트를 발생시킴
            }
        }
    }
});
onCall(Minitalk this, Object sender, Object user)
유저가 호출받았을 때 발생합니다.
4.1.0
STABLE

Minitalk this : 이벤트가 발생한 객체


Object sender : 호출한 유저 객체

sender.nickname:String - 유저의 닉네임

sender.nickcon:String - 유저의 닉이미지경로
sender.status:String - 유저의 상태
sender.device:String - 유저의 접속디바이스
sender.info:Object - 유저의 부가정보


Object user : 호출를 받는 유저 객체

user.nickname:String - 유저의 닉네임
user.nickcon:String - 유저의 닉이미지경로
user.status:String - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:Object - 유저의 부가정보


new Minitalk({
    // 생략
    listeners:{
        onCall:function(minitalk,sender,user) {
            alert(sender.nickname+"님이 호출하였습니다.");
            // onCall 이벤트의 경우 기본적으로 호출음이 재생되어 집니다만, 이벤트를 재정의 할 경우 기본 호출음이 들리지 않습니다.
            minitalk.playSound("IRCCALL");
        }
    }
});
onConnect(Minitalk this, String channel, Object user)
채널에 접속하였을 때 발생합니다.
4.1.0
STABLE

Minitalk this : 이벤트가 발생한 객체


String channel : 참여한 채널명


Object user : 참여한 유저객체

user.nickname:String - 유저의 닉네임

user.nickcon:String - 유저의 닉이미지경로
user.status:String - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:Object - 유저의 부가정보


new Minitalk({
    // 생략
    listeners:{onConnect:function(minitalk,channel,user) {
        minitalk.printSystem(user.nickname+"님! "+channel+"채널에 참여하신 것을 환영합니다."); 
    }} 
});
onInit(Minitalk this)
미니톡의 화면구성이 종료되었을 때 호출됩니다.
4.1.0
STABLE

미니톡의 모든 스크립트파일을 로딩완료하고, 미니톡의 화면구성을 끝냈을 때 호출됩니다.

이 이벤트 다음에 서버접속이 시작됩니다.


Minitalk this : 이벤트가 발생한 객체


new Minitalk({
    // 생략
    listeners:{onInit:function(minitalk) {
        minitalk.printMessage("system","미니톡의 로딩이 완료되었습니다."); 
    }} 
});
onInvite(Minitalk this, Object sender, String code, Object user)
개인채널 초대를 받았을 때 호출됩니다.
4.2.0
STABLE

해당 이벤트리스너의 값이 true 일 경우 메세지를 전송하며, false 일 경우 메세지를 전송하지 않습니다.

아래의 예제소스를 참고하시기 바랍니다.


Minitalk this : 이벤트가 발생한 객체


Object sender : 초대한 유저 객체

sender.nickname:String - 유저의 닉네임
sender.nickcon:String - 유저의 닉이미지경로
sender.status:String - 유저의 상태
sender.device:String - 유저의 접속디바이스
sender.info:Object - 유저의 부가정보


String code : 개인채널의 고유코드값


Object user : 초대를 받는 유저 객체

user.nickname:String - 유저의 닉네임

user.nickcon:String - 유저의 닉이미지경로
user.status:String - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:Object - 유저의 부가정보


new Minitalk({
    // 생략
    listeners:{
        onInvite:function(minitalk,sender,code,user) {
            alert(sender.nickname+"님이 나를 "+code+"코드의 개인채널에 초대하였습니다.");
        } 
    }
});
onJoinUser(Minitalk this, Object user, int userCount)
유저에 참여하였을 때 발생합니다.
4.1.0
STABLE

유저가 채널에 참여하였을 때 발생합니다.


Minitalk this : 이벤트가 발생한 객체


Object user : 접속한 유저객체

user.nickname:String - 유저의 닉네임

user.nickcon:String - 유저의 닉이미지경로
user.status:string - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:String - 유저의 부가정보


int userCount : 현재 채널의 전체 접속자 수


new Minitalk({
    // 생략
    listeners:{
        onJoinUser(mini talk,user,userCount) {
            minitalk.printMessage("system",user.nickname+"님이 방금 접속하여 이제 채널의 접속자 수는 "+userCount+"명 입니다.");
        }
    }
});
onLeaveUser(Minitalk this, Object user, int userCount)
유저에 채팅을 종료하였을 때 발생합니다.
4.1.0
STABLE

유저에 채팅을 종료하였을 때 발생합니다.


Minitalk this : 이벤트가 발생한 객체


Object user : 접속종료한 유저객체

user.nickname:String - 유저의 닉네임
user.nickcon:String - 유저의 닉이미지경로
user.status:string - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:String - 유저의 부가정보


int userCount : 현재 채널의 전체 접속자 수


new Minitalk({
    // 생략
    listeners:{
        onLeaveUser(mini talk,user,userCount) {
            minitalk.printMessage("system",user.nickname+"님이 방금 접속종료하여 이제 채널의 접속자 수는 "+userCount+"명 입니다.");
        }
    }
});
onMessage(Minitalk this, Object sender, String msg, int time)
메세지가 수신되었을 때 발생합니다.
4.1.0
STABLE

Minitalk this : 이벤트가 발생한 객체


Object sender : 메세지를 전송한 유저객체

user.nickname:String - 유저의 닉네임

user.nickcon:String - 유저의 닉이미지경로
user.status:string - 유저의 상태
user.device:String - 유저의 접속디바이스
user.info:String - 유저의 부가정보


String msg : 전송되어진 메세지


int time : 메세지가 전송된 시각 (unixtime)


new Minitalk({
    // 생략
    listeners:{
        onMessage:function(minitalk,sender,msg,time) {
            minitalk.printMessage("system","방금 받은 메세지는 "+minitalk.getTime(time,"fulltext")+"에 받았습니다.");
            minitalk.playSound("MESSAGE"); // 소리재생
        }
    }
});
onSendCall(Minitalk this, String receiver, Object user)
호출을 완료한 후 발생합니다.
4.1.0
STABLE

Minitalk this : 이벤트가 발생한 객체

String receiver : 호출을 받을 상대방

Object user : 호출을 시도하는 유저객체

user.nickname:String - 유저의 닉네임

user.nickcon:String - 유저의 닉이미지경로user.status:String - 유저의 상태user.device:String - 유저의 접속디바이스user.info:Object - 유저의 부가정보

new Minitalk({
    // 생략
    listeners:{
        onSendCall:function(minitalk,receiver,user) {
            if (receiver == "바보") {
                alert("바보님을 호출하였습니다.");
            }
        } 
    }
});
onSendInvite(Minitalk this, String receiver, Object user)
개인채널 초대를 완료한 후 발생합니다.
4.2.0
STABLE

Minitalk this : 이벤트가 발생한 객체

String receiver : 개인채널 초대를 받을 유저

Object user : 초대를 시도하는 유저객체

user.nickname:String - 유저의 닉네임

user.nickcon:String - 유저의 닉이미지경로user.status:String - 유저의 상태user.device:String - 유저의 접속디바이스user.info:Object - 유저의 부가정보

new Minitalk({
    // 생략
    listeners:{
        onSendInvite:function(minitalk,receiver,user) {
            alert(receiver+"님을 초대하였습니다.");
        } 
    }
});
onSendMessage(Minitalk this, String msg, Object user)
메세지 전송을 완료한 후 발생합니다.
4.1.0
STABLE

Minitalk this : 이벤트가 발생한 객체

String msg : 유저가 입력한 메세지

Object user : 메세지를 전송을 시도하는 유저객체

user.nickname:String - 유저의 닉네임

user.nickcon:String - 유저의 닉이미지경로user.status:String - 유저의 상태user.device:String - 유저의 접속디바이스user.info:Object - 유저의 부가정보

new Minitalk({
    // 생략
    listeners:{
        onSendMessage:function(minitalk,msg,user) {
            if (msg == "바보") {
                alert(user.nickname+"님은 방금 욕설을 전송하였습니다.");
            }
        } 
    }
});
onSendWhisper(Minitalk this, String receiver, String msg, Object user)
귓속말 전송을 완료한 후 발생합니다.
4.1.0
STABLE

Minitalk this : 이벤트가 발생한 객체

String receiver : 귓속말을 받은 사람 닉네임

String msg : 유저가 입력한 메세지

Object user : 메세지를 전송한 유저객체

user.nickname:String - 유저의 닉네임

user.nickcon:String - 유저의 닉이미지경로user.status:String - 유저의 상태user.device:String - 유저의 접속디바이스user.info:Object - 유저의 부가정보

new Minitalk({
    // 생략
    listeners:{
        onSendWhisper:function(minitalk,receiver,msg,user) {
            if (msg == "바보") {
                alert(user.nickname+"님! "+receiver+"님에게 귓속말로 욕설을 보냈습니다.");
            }
        } 
    }
});
onWhisper(Minitalk this, Object sender, String msg, int time)
귓속말이 수신되었을 때 발생합니다.
4.1.0
STABLE

Minitalk this : 이벤트가 발생한 객체

Object sender : 메세지를 전송한 유저객체

user.nickname:String - 유저의 닉네임

user.nickcon:String - 유저의 닉이미지경로user.status:string - 유저의 상태user.device:String - 유저의 접속디바이스user.info:String - 유저의 부가정보

String msg : 전송되어진 메세지

int time : 메세지가 전송된 시각 (unixtime)

new Minitalk({
    // 생략
    listeners:{
        onWhisper:function(minitalk,sender,msg,time) {
            minitalk.printMessage("system","방금 받은 귓속말은 "+minitalk.getTime(time,"fulltext")+"에 받았습니다.");
            minitalk.playSound("MESSAGE"); // 소리재생
        }
    }
});
ErrorCodes
Method
Version
ErrorCode : 101
개설되지 않은 채널입니다.
4.0.0
LOCKED

미니톡 관리자페이지에서 개설되지 않은 채널에 접속을 시도할 때 발생합니다.

해결방법 미니톡 클라이언트 스크립트에서 채널명이 정확한지 확인합니다.또는 개설되지 않은 채널이므로, 관리자페이지에서 채널개설 후 사용합니다.

ErrorCode : 201
모든 서버가 오프라인입니다.
4.0.0
LOCKED

미니톡 서버에 장애가 발생하여, 서버에 접속할 수 없는 경우 발생합니다.

해결방법 자체서버를 사용중인 경우미니톡 서버가 정상적으로 구동되고 있는지, 미니톡서버의 포트가 방화벽등으로 인해 막혀있지않은지 확인해보세요. 미니톡 공식서버 서비스 이용자의 경우일시적인 서비스 장애이거나, 사용자 컴퓨터의 방화벽등으로 인해 미니톡 서버에 접속할 수 없는 상황입니다.미니톡 서버현황에서 서버상태가 OFFLINE인지 확인 후 OFFLINE으로 나타난다면 일시적 장애상태이므로 잠시 후 다시 시도해보시기 바라며, ONLINE으로 나타난다면, 사용자 방화벽 설정을 확인해보시기 바랍니다.

ErrorCode : 202
미니톡서버 이용인증이 승인되지 않았습니다.
4.0.0
LOCKED

미니톡 공식서버 서비스 인증에 실패하였습니다.

해결방법 이용기간이 남아있는 경우미니톡 관리자에서 미니톡 서버를 삭제 후 다시 추가해보시기 바랍니다. 이용기간이 종료된 경우미니톡 홈페이지 서비스 메뉴에서 이용기간을 연장하시기 바랍니다.

ErrorCode : 203
미니톡서버 접속이용기간이 만료되었습니다.
4.0.0
LOCKED

미니톡 공식서버 서비스의 이용기간이 만료되었습니다.

해결방법 미니톡 홈페이지 서비스 메뉴에서 이용기간을 연장하여 주시기 바랍니다.

ErrorCode : 204
미니톡서버 최대동시접속자를 초과하여 접속할 수 없습니다.
4.0.0
LOCKED

미니톡 공식서버서비스의 최대동시접속자를 초과하여 접속할 수 없습니다.

해결방법미니톡 공식홈페이지 서비스 메뉴에서 최대동시접속자를 늘리거나, 자체서버를 사용하시기 바랍니다.

ErrorCode : 301
해당 닉네임을 사용할 수 없습니다.
4.0.0
LOCKED

닉네임에 사용될 수 없는 문자 #, *, +, - 또는 공백만으로 이루어진 닉네임입니다.

해결방법설정된 닉네임을 수정합니다.

ErrorCode : 501
채널 최대동시접속자를 초과하였습니다.
4.0.0
LOCKED

해당 채널의 최대 동시접속자를 초과하여 접속할 수 없습니다.

해결방법미니톡 관리자에서 해당채널의 최대동시접속자 수를 늘리시기 바랍니다.