Minitalk.socket
정의 파일 /scripts/widget.socket.js
미니톡 채팅서버와 미니톡 채팅위젯 사이에 소켓통신을 하기 위한 클래스입니다.
| 표시 | 의미 |
|---|---|
| 사용중단 | 이 기능은 문제의 소지가 있어 제거되었거나 제거될 예정입니다. |
| 불안정 | 아직 안정적이라고 고려될만큼 충분한 테스트를 거치지 않았습니다.(합당하다면 하위호환성이 보장됩니다.) |
| 안정 | API가 충분히 검증되었지만, 기반이 되는 코드의 정리 때문에 마이너한 변경이 있을 수 있습니다.(하위호환성이 보장됩니다.) |
| 잠김 | 심각한 버그가 발견되지 않는 한 이 코드는 절대 변경되지 않습니다. |
속성 (Properties)
섹션 제목: “속성 (Properties)”| 이름 | 설명 |
|---|---|
channel |
접속한 채널에 대한 기본정보 |
connected |
미니톡 채팅서버에 접속중인지 여부 |
connecting |
미니톡 채팅서버에 접속시도중 여부 |
connection |
미니톡 채팅서버에 접속하기 위한 정보 |
io |
서버소켓통신을 위한 socket.io 객체 |
joined |
미니톡 채팅서버에 접속후 채널에 참여했는지 여부 |
permission |
접속한 채널에 대한 나의 권한여부 |
reconnectable |
미니톡 채팅서버와 연결이 해제되었을 경우 자동으로 재접속할지 여부 |
token |
미니톡 채팅서버로 API 호출하기 위한 토큰 |
uuid |
나의 유저고유값 |
channel
섹션 제목: “channel”Minitalk.socket.channel: object접속한 채널에 대한 기본정보
타입 object
channel 구조
| 필드 | 타입 | 설명 |
|---|---|---|
title |
string |
접속한 채널명(미니톡 예제) |
token |
string |
미니톡 클라이언트 API호출을 위한 토큰 |
use_boxes |
boolean |
개인박스 사용여부 |
use_users |
boolean |
접속자목록 사용여부 |
use_history |
boolean |
이전대화보기 사용여부 (v7.0.0 이상) |
미니톡 채팅위젯이 현재 접속한 채널에 대한 기본정보가 담겨있습니다.
최종수정일 : 2021.02.14
connected
섹션 제목: “connected”Minitalk.socket.connected: boolean미니톡 채팅서버에 접속중인지 여부
타입 boolean
미니톡 채팅서버에 접속이 되어있을 경우 true, 서버에 접속되지 않은 경우 false 로 정의된다.
미니톡 채팅서버 접속완료가 되었음을 확인할 때는 이 변수값을 바로 참조하는 것보다 Minitalk.socket.isConnected() 메소드를 이용하는 것을 권장합니다.
최종수정일 : 2021.02.14
connecting
섹션 제목: “connecting”Minitalk.socket.connecting: boolean미니톡 채팅서버에 접속시도중 여부
타입 boolean
미니톡 채팅서버에 접속시도중인 경우 true, 접속이 완료되었거나, 접속이 끊어진 경우 false 로 정의된다.
최종수정일 : 2021.02.14
connection
섹션 제목: “connection”Minitalk.socket.connection: object미니톡 채팅서버에 접속하기 위한 정보
타입 object
connection 구조
| 필드 | 타입 | 설명 |
|---|---|---|
domain |
string |
미니톡 채팅서버 도메인 |
client_id |
string |
미니톡 클라이언트 관리자 서버관리에서 정의된 클라이언트 아이디 |
channel |
string |
채널설정이 담긴 암호화된 문자열 |
connection |
string |
서버설정이 담긴 암호화된 문자열 |
미니톡 채팅서버에 접속하기 위한 데이터가 정의되어 있습니다.
최종수정일 : 2021.02.14
Minitalk.socket.io: IO서버소켓통신을 위한 socket.io 객체
타입 IO
socket.io 객체가 정의되어 있습니다.
socket.io 객체내에 정의된 변수 및 메소드와 관련된 사항은 https://socket.io 홈페이지 내 문서를 참고하시기 바랍니다.
최종수정일 : 2021.02.14
joined
섹션 제목: “joined”Minitalk.socket.joined: boolean미니톡 채팅서버에 접속후 채널에 참여했는지 여부
타입 boolean
미니톡 채팅서버에 접속후 채널에 참여가 되어 있을 경우 true, 채널에 참여하지 못하였을 경우 false 로 정의된다.
미니톡 채팅서버 접속완료가 되었음을 확인할 때는 이 변수값을 바로 참조하는 것보다 Minitalk.socket.isConnected() 메소드를 이용하는 것을 권장합니다.
최종수정일 : 2021.02.14
permission
섹션 제목: “permission”Minitalk.socket.permission: object접속한 채널에 대한 나의 권한여부
타입 object
permission 구조
| 필드 | 타입 | 설명 |
|---|---|---|
box |
boolean |
개인박스 개설 권한 여부 |
file |
boolean |
파일전송 권한 여부 |
font |
boolean |
폰트설정 권한 여부 |
nickname |
boolean |
닉네임변경 권한 여부 |
send |
boolean |
메시지전송 권한 여부 |
user |
boolean |
접속자목록 보기 권한 여부 |
user_limit |
boolean |
접속자목록에 보일 최소유저레벨 |
접속한 채널에 대한 나의 권한설정값이 정의되어 있습니다.
특정 권한이 있는지 확인하기 위해서는 해당 변수를 확인하는 것보다 Minitalk.socket.getPermission() 메소드를 이용하는 것을 권장합니다.
최종수정일 : 2021.02.14
reconnectable
섹션 제목: “reconnectable”Minitalk.socket.reconnectable: boolean미니톡 채팅서버와 연결이 해제되었을 경우 자동으로 재접속할지 여부
타입 boolean
미니톡 채팅서버와 어떠한 이유로 연결이 해제되었을 경우, 60초 뒤에 자동으로 재접속할지 여부를 정의한다.
특정사유 (닉네임 중복 등)로 미니톡 채팅서버와의 연결이 해제되었을 경우에는 자동으로 재접속하지 않도록 false 로 정의된다.
최종수정일 : 2021.02.14
token
섹션 제목: “token”Minitalk.socket.token: string미니톡 채팅서버로 API 호출하기 위한 토큰
타입 string
미니톡 채팅서버로 API 호출을 하기 위한 토큰(접속자인증)이 정의되어 있습니다.
최종수정일 : 2021.02.14
uuid
섹션 제목: “uuid”Minitalk.socket.uuid: string나의 유저고유값
타입 string
특정 미니톡 채팅위젯의 특정채널에 접속한 나의 유저 고유값을 확인합니다.
해당 유저고유값은 usercode 를 통해 고정된 닉네임이 정의되어 있는 경우, 해당 닉네임에 대해 고정된 유니크값이 정의되며, usercode 가 정의되지 않거나 고정된 닉네임이 없는 손님접속자의 경우, 브라우저를 완전히 종료하기 전 까지 고정된 유니크값이 정의됩니다.
최종수정일 : 2021.02.14
메서드 (Methods)
섹션 제목: “메서드 (Methods)”| 이름 | 설명 |
|---|---|
connect() |
미니톡 채팅서버에 접속합니다. |
disconnect() |
미니톡 채팅서버와 접속을 해제합니다. |
isConnected() |
미니톡 채팅서버에 접속여부를 반환한다. |
reconnect() |
특정시간 뒤에 미니톡 채팅서버에 접속을 시도합니다. |
send() |
미니톡 채팅서버에 데이터를 전송합니다. |
sendMessage() |
채팅메시지를 서버로 전송합니다. |
sendProtocol() |
사용자정의 프로토콜을 전송한다. |
setProtocol() |
사용자정의 프로토콜을 정의한다. |
connect()
섹션 제목: “connect()”Minitalk.socket.connect(): void미니톡 채팅서버에 접속합니다.
반환값 void
기본적으로 자동으로 호출되는 메소드로, 특별한 사유가 아닌 경우 해당 메소드를 이용하여 서버에 접속하는 것을 권장하지 않습니다.
최종수정일 : 2021.02.14
disconnect()
섹션 제목: “disconnect()”Minitalk.socket.disconnect(): void미니톡 채팅서버와 접속을 해제합니다.
반환값 void
해당 메소드로 접속을 해제한 경우 미니톡 채팅서버에 자동으로 재접속하지 않습니다.
// 미니톡 채팅위젯 외부에서 특정 id 값을 가진 미니톡 채팅위젯의 서버연결을 해제합니다.MinitalkComponent.get("id").socket.disconnect();// 미니톡 채팅위젯 내부에서 서버연결을 해제합니다.Minitalk.socket.disconnect();최종수정일 : 2021.02.14
isConnected()
섹션 제목: “isConnected()”Minitalk.socket.isConnected(): boolean미니톡 채팅서버에 접속여부를 반환한다.
반환값 boolean
미니톡 채팅서버 접속여부확인이 필요할 경우 사용합니다.
// 미니톡 채팅위젯 외부에서 특정 id 를 가진 미니톡 채팅위젯의 접속여부를 확인할 경우MinitalkComponent.get("id").socket.isConnected();// 미니톡 채팅위젯 내부에서 미니톡 채팅위젯의 접속여부를 확인할 경우Minitalk.socket.isConnected();최종수정일 : 2021.02.14
reconnect()
섹션 제목: “reconnect()”Minitalk.socket.reconnect(time: int): void특정시간 뒤에 미니톡 채팅서버에 접속을 시도합니다.
매개변수
| 이름 | 타입 | 설명 |
|---|---|---|
time |
int |
재접속까지 대기할 시간(초) |
반환값 void
미니톡 채팅서버와 접속이 해제되는 경우, 대부분 자동으로 해당 메소드가 호출됩니다.
특정상황에서 재접속이 필요한 경우 해당 메소드를 호출하여 미니톡 채팅서버와 연결할 수 있습니다.
해당 함수를 호출할때, Minitalk.socket.reconnectable 변수의 값이 false 일 경우 재접속하지 않습니다.
최종수정일 : 2021.02.14
send()
섹션 제목: “send()”Minitalk.socket.send(protocol: string, data?: any): void미니톡 채팅서버에 데이터를 전송합니다.
매개변수
| 이름 | 타입 | 설명 |
|---|---|---|
protocol |
string |
|
data |
any |
(선택) |
반환값 void
미니톡 채팅서버에 특정 프로토콜로 데이터를 전송합니다.
데이터전송을 하기 위해서는 Minitalk.socket.permission.send 에 정의된 값이 true 여야 가능합니다. (일부 프로토콜은 제외)
각 프로토콜 별 서버에 데이터를 보내는 함수가 따로 정의되어 있기 때문에, 해당 메소드로 직접 데이터를 서버에 전송하는 것은 권장하지 않습니다.
최종수정일 : 2021.02.14
sendMessage()
섹션 제목: “sendMessage()”Minitalk.socket.sendMessage(type: string, message: string, data: object, isPrint: boolean): void채팅메시지를 서버로 전송합니다.
매개변수
| 이름 | 타입 | 설명 |
|---|---|---|
type |
string |
메시지 종류를 입력합니다. 일반적인 채팅메시지는 message 를 사용하면 미니톡 채팅위젯에 의해 자동으로 채팅메시지가 화면상에 구현됩니다. |
message |
string |
메시지 내용 |
data |
object |
채팅 메시지와 함께 전송할 추가적인 데이터로 해당 데이터는 printMessage 이벤트에서 받아 임의의 디자인을 가진 채팅메시지를 출력하는데 사용할 수 있습니다. |
isPrint |
boolean |
채팅메시지는 메시지를 수신한 사람만 화면에 출력되나, 이 값을 true 로 설정한 경우, 메시지를 전송한 사용자화면에서 해당 메시지가 출력됩니다. |
반환값 void
일반적으로 사용자가 메시지 입력폼에 내용을 입력하고, 전송버튼을 눌렀을 때와 동일한 방식으로, 일반적인 텍스트 메시지 뿐만 아니라 추가적인 데이터를 포함하여 전송할 수 있습니다.
일반적인 채팅메시지가 아닌 특별한 디자인을 가진 메시지를 전송하시려면 string type 을 임의의 문자열로 정해 printMessage 이벤트를 이용하여 임의의 디자인을 가진 채팅메시지를 출력할 수 있습니다.
예제
최종수정일 : 2022.08.24
sendProtocol()
섹션 제목: “sendProtocol()”Minitalk.socket.sendProtocol(protocol: string, data?: any, to?: string): void사용자정의 프로토콜을 전송한다.
매개변수
| 이름 | 타입 | 설명 |
|---|---|---|
protocol |
string |
프로토콜명 |
data |
any |
(선택, 기본값 NULL) 해당 프로토콜에 전송할 데이터 (string, object 등 모든 타입의 데이터를 전송할 수 있으며, 없을 경우 NULL 이 전송됩니다.) |
to |
string |
(선택, 기본값 "*") 수신자 닉네임 (특정유저에게 전송할 경우 수신자 닉네임을 정의합니다. 없을 경우 전체 유저(*) 에게 전송됩니다.) |
반환값 void
미니톡 채팅위젯에 기본적으로 정의된 프로토콜 외에 사용자정의 프로토콜을 서버에 전송하여, 접속자에게 데이터를 전송합니다.
정의된 사용자정의 프로토콜을 정의하는 방법에 대해서는 Minitalk.socket.setProtocol() 메소드 문서를 참고하세요.
예제
최종수정일 : 2021.02.14
setProtocol()
섹션 제목: “setProtocol()”Minitalk.socket.setProtocol(protocol: string, callback: function): void사용자정의 프로토콜을 정의한다.
매개변수
| 이름 | 타입 | 설명 |
|---|---|---|
protocol |
string |
프로토콜명 |
callback |
function |
해당 프로토콜을 수신하였을 경우, 실행할 함수 |
반환값 void
미니톡 채팅위젯에 기본적으로 정의된 프로토콜 외에 사용자정의 프로토콜을 추가하여 서버에 전송하거나, 수신할 때 실행될 함수를 정의할 수 있습니다.
콜백 함수의 매개변수로 아래와 같은 정보가 전달됩니다.
callback 구조
| 필드 | 타입 | 설명 |
|---|---|---|
minitalk |
Minitalk |
프로토콜을 수신한 미니톡 객체 |
data |
object |
프로토콜에 담긴 데이터 |
to |
User |
프로토콜을 수신한 유저객체 (전체 유저를 대상으로 전송된 프로토콜인 경우 "*" 을 반환한다.) |
from |
User |
프로토콜을 전송한 유저객체 |
정의된 사용자정의 프로토콜을 이용하여 데이터를 보내는 방법에 대해서는 Minitalk.socket.sendProtocol() 메소드 문서를 참고하세요.
예제
최종수정일 : 2021.02.14